{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "2296f083",
   "metadata": {},
   "source": [
    "# 满仓才能赢\n",
    "\n",
    "## 介绍\n",
    "这个仓库是由python课的五人小队所共同创建，主要用于记录在完成python大项目过程中，大家的学习产出物，欢迎大家前来学习参观~<br>\n",
    "仓库链接：https://gitee.com/liu-lingjun/python-quant<br>\n",
    "在仓库中可下载能直接运行的已打包好的代码，欢迎大家下载\n",
    "## 目录\n",
    "1. 安装教程<br>\n",
    "2. 使用说明<br>\n",
    "3. 软件架构<br>\n",
    "4. 各模块介绍<br>\n",
    "5. 策略结果<br>\n",
    "\n",
    "## 安装教程\n",
    "\n",
    "1.  下载各个模块和数据文件（数据文件可以根据自己需要导，本平台如果导入全部数据运行将会非常慢）<br>\n",
    "\n",
    "\n",
    "2.  将数据放在运行路径之下，写好回测模块里的初始参数和交易模块里的策略后，即可直接运行。<br>\n",
    "\n",
    "\n",
    "3.  文件夹里写好了三个策略，ETF轮动策略（这个策略运行速度快）、量价双金叉策略（10分钟）、基于随机森林的策略（10分钟）。用户如果要写自己的策略，请参照使用说明。（这里我们给了三个策略）\n",
    "\n",
    "## 使用说明\n",
    "用户只需要在以下两个地方写：<br>\n",
    "1. 选拟采用数据（我们系统里只放了沪深300股票2020年的数据，避免文件太大）<br>\n",
    "   具体操作：下载拟采用的数据，在path变量更换文件名。<br>\n",
    "   \n",
    "\n",
    "2. 写回测初始参数<br>\n",
    "   具体操作：在主函数（main函数）处，写回测开始时间、结束时间、初始资金、手续费。<br>\n",
    "\n",
    "\n",
    "3. 写具体策略<br>\n",
    "   具体操作：在strategy模块写出写具体将用的策略。<br>\n",
    "   \n",
    "## 软件架构\n",
    "程序分为各个功能模块类和回测模块（即主函数），执行主函数的时候不断调用功能模块里的函数或对象。<br>\n",
    "功能模块主要分为：<br>\n",
    "1. 获取数据函数类find<br>\n",
    "\n",
    "2. 账户类portfolio<br>\n",
    "\n",
    "3. 交易数据记录类history<br>\n",
    "\n",
    "4. 结果输出类output<br>\n",
    "\n",
    "5. 交易策略类strategy（我们的策略写在这个类里）<br>\n",
    "\n",
    "6. 收盘后更新和记录数据模块trade_after<br>\n",
    "\n",
    "7. 主函数模块main（回测模块）<br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "264bcea9",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib\n",
    "import matplotlib.ticker as ticker\n",
    "import matplotlib.pyplot as plt\n",
    "import statistics\n",
    "import itertools\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ff91eb50",
   "metadata": {},
   "source": [
    "### 一、获取数据函数类find\n",
    "#### 该类中包括以下函数：\n",
    "1. get_data_all(path)<br>\n",
    "   功能说明：获取总数据<br>\n",
    "   参数说明：path为文件路径\n",
    "   返回：得到一个字典，字典的keys是日期，values是一个dataframe，这个dataframe里index是股票代码，values是各个指标（收盘价、波动率等）<br>\n",
    "\n",
    "2. get_date_all(data_all,start_date,end_date) <br>\n",
    "   功能说明：获取从某一天开始到另外一天内所有交易日数据<br>\n",
    "   参数说明：stat_date表示回测开始时间，end_date表示回测结束时间,data_all表示全部导入数据<br>\n",
    "   返回：得到一个list，包括所有区间交易日的日期<br>\n",
    "\n",
    "3. get_data(self,date,stock,s_index) <br>\n",
    "   功能说明：数据获取函数（根据和日期和股票获得各类指标）<br>\n",
    "   参数说明：date表示日期，stock表示股票代码，s_index表示希望获得的参数<br>\n",
    "   返回：得到一个某股票某日某参数值<br>\n",
    "\n",
    "4. get_date(self,date_get,i)<br>\n",
    "    功能说明：获取周围几个交易日的日期<br>\n",
    "    参数说明：date表示日期，i表示前后天数，如get_date(‘2020-01-03’,-2)表示获取2020年1月3日前2天的日期<br>\n",
    "    返回：得到一个日期<br>\n",
    "    \n",
    "5. get_hist_data(self,start_date,date, stock)<br>\n",
    "    功能说明：获取某一支股票在某个交易日之前的所有历史交易信息<br>\n",
    "    参数说明：start_date为开始时间，date为结束时间，stock为股票<br>\n",
    "    返回：一个Dataframe\n",
    "***"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "8fa21e66",
   "metadata": {},
   "outputs": [],
   "source": [
    "##########################寻找数据模块####################################\n",
    "import pandas as pd\n",
    "\n",
    "class find:\n",
    "    #获取总数据（看你们要什么数据可以再改）\n",
    "    def __init__(self,data_all, date_all):\n",
    "        \n",
    "        self.data_all = data_all\n",
    "        self.date_all = date_all\n",
    "    \n",
    "    #根据路径读数据\n",
    "    def get_data_all(path):\n",
    "        income_data = pd.read_excel(path,header=0)  ##读入文件\n",
    "        time_list=income_data['时间'].unique() ##将时间这一列读成列表，删去重复值\n",
    "        data_all={}\n",
    "        for item in time_list:\n",
    "            result=income_data[income_data[\"时间\"].str.contains(item)]  #获取同一时间的所有公司的数据，形成一个新的dataframe\n",
    "            del result[\"时间\"] ##把时间这一列删除\n",
    "            result=result.set_index(\"代码\", inplace=False)  \n",
    "            data_all[item]=result ##将时间作为key,result这个dataframe作为values写入字典中\n",
    "\n",
    "        return data_all\n",
    "    \n",
    "    #获取交易日数据(报错函数)，直到下一个存在这个日期，end_date不在就减一\n",
    "    def get_date_all(data_all,start_date,end_date):\n",
    "        date = list(data_all.keys())\n",
    "        date_all = date[date.index(start_date):date.index(end_date)+1]\n",
    "        return date_all\n",
    "    \n",
    "    #数据获取函数（根据和日期和股票获得各类指标）,数据结构为字典套dataframe,获取数据函数为\n",
    "    def get_data(self,date,stock,s_index):#数据获取函数（可能要用数据清洗）\n",
    "        #输入一个data得到当天所有数据的dateframe，在dateframe中根据stock和s_index得到某个股票相应指标\n",
    "    \treturn self.data_all[date].loc[stock][s_index]\n",
    "    \n",
    "    #获取周围几个交易日的日期\n",
    "    def get_date(self,date_get,i):\n",
    "        #例如get_date(now_date,-1)获取now_date减去一个交易日的日期（这里可能需要构建一个交易日期list，找到now_date的日期后索引减一得到前一个交易日的日期）\n",
    "        return self.date_all[self.date_all.index(date_get)+i]\n",
    "    \n",
    "    #获取某一支股票在某个交易日之前的所有历史交易信息\n",
    "    def get_hist_data(self,start_date,date, stock):\n",
    "        all_date = find.get_date_all(self.data_all,start_date, date)\n",
    "        hist_data = pd.DataFrame(columns = list(self.data_all['2020-01-02'].columns), index = [])\n",
    "        idx = all_date.index(date) + 1\n",
    "        for i in range(idx):\n",
    "            # 给hist_data新增一行，这一行是该股票在某一天的交易信息\n",
    "            hist_data.loc[all_date[i]] = list(self.data_all[all_date[i]].loc[stock])\n",
    "\n",
    "        return hist_data"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ad55742e",
   "metadata": {},
   "source": [
    "### 二、账户类portfolio\n",
    "#### 该类中包括以下重要参数：\n",
    "\n",
    "1. cash<br> \n",
    "   参数说明：当前现金<br>\n",
    "\n",
    "2. total_value<br>\n",
    "   参数说明：当前总市值<br>\n",
    "\n",
    "3. stock_hold<br>\n",
    "   参数说明：当前持仓信息，一个dateframe，横坐标是股票代码，纵坐标是数量num和价格price<br>\n",
    "\n",
    "4. stock_value<br>\n",
    "   参数说明：当前股票价值<br>\n",
    "\n",
    "#### 该类中包括以下函数：\n",
    "\n",
    "1. buy(self,stock,num,date)<br>\n",
    "   功能说明：买股票函数<br>\n",
    "   参数说明：stock为股票代码，num为买的数量<br>\n",
    "\n",
    "2. sell(self,stock,num,date)<br>\n",
    "   功能说明：卖股票函数<br>\n",
    "   参数说明：stock为股票代码，num为买的数量<br>\n",
    "\n",
    "3. sell_all(self,date) <br>\n",
    "   功能说明：卖出所有持仓股票<br>\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "b42aaa00",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "class porfolio:\n",
    "    #初始化现金、总市值、股票持仓、股票价值\n",
    "    def __init__(self, cash, date,commission, my_history,find):\n",
    "        #当前现金\n",
    "        self.cash = cash\n",
    "        #当前总市值\n",
    "        self.total_value = cash\n",
    "        #当前持仓信息，一个dateframe，横坐标是股票代码，纵坐标是数量num和价格price\n",
    "        self.stock_hold = pd.DataFrame(columns=['num', 'price'],index = []) \n",
    "        #当前股票价值\n",
    "        self.stock_value = 0\n",
    "        self.date = date\n",
    "        self.commission = commission\n",
    "        self.my_history = my_history\n",
    "        self.find = find\n",
    "        \n",
    "\t#卖出所有持仓股票\n",
    "    def sell_all(self,date):\n",
    "        stock_in_stock_hold = self.stock_hold.index.tolist()#获取当前所有持仓股票代码\n",
    "        if len(stock_in_stock_hold)>0:\n",
    "            for i in stock_in_stock_hold:\n",
    "                self.sell(i, self.stock_hold.loc[i]['num'],date)\n",
    "                \n",
    "\t#买股票\n",
    "    def buy(self,stock,num,date):\n",
    "        price = self.find.get_data(date,stock,'收盘价')#获取相应股票的价格\n",
    "        self.cash = self.cash - price*num - price*num*self.commission\n",
    "        self.stock_hold.loc[stock] = {'num':num,'price':price}#记录持仓\n",
    "        self.stock_value = sum(self.stock_hold['num']*self.stock_hold['price'])\n",
    "        self.total_value = self.cash + self.stock_value\n",
    "        self.my_history.order_history.append([date,stock, num ,price,'买'])\n",
    "\t\n",
    "    #卖股票\n",
    "    def sell(self,stock,num,date):\n",
    "        price = self.find.get_data(date,stock,'收盘价')\n",
    "        self.cash = self.cash + price*num - price*num*self.commission\n",
    "        self.stock_hold.drop(index = stock, inplace = True)####此处有个问题是，会直接卖掉这个股票全部，不过可以忽略，由于不考虑交易成本，大不了卖了再买\n",
    "        self.stock_value = sum(self.stock_hold['num']*self.stock_hold['price'])\n",
    "        self.total_value = self.cash + self.stock_value\n",
    "        self.my_history.order_history.append([date,stock,num,price,'卖'])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "41988408",
   "metadata": {},
   "source": [
    "### 三、交易数据记录类history\n",
    "#### 该类中包括以下重要参数：<br>\n",
    "\n",
    "1. hold_histroy<br>\n",
    "   参数说明：持仓历史。 此处为一个dataframe，记录每日持仓情况。包括日期、现金、持仓股票、总资产价值。<br>\n",
    "   效果示例：2017-01-03  729.61  [510500.OF]  9.995006e+05<br>\n",
    "\n",
    "2. order_history<br>\n",
    "   参数说明：交易信息。这是一个list，每次交易后append一下。<br>\n",
    "   效果示例：order_history.append(['2021-09-23', '510500.OF', 197400.0, 8.429, '买'])<br>\n",
    "\n",
    "3. return_history<br>\n",
    "   参数说明：收益率信息。这是一个datafrane，index是日期，values是收益率，这样写方便最后画图。<br>\n",
    "   效果示例：2021-11-05  0.7123<br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "d08f85c0",
   "metadata": {},
   "outputs": [],
   "source": [
    "###############记录交易历史模块#####################\n",
    "import pandas as pd\n",
    "class history:\n",
    "    def __init__(self):\n",
    "        #hold_histroy（持仓历史）,此处stock暂时为股票list，后续考虑变为有数量和价格的list\n",
    "        self.hold_history = pd.DataFrame(columns = ['cash','stock','total_value'],index=[]) \n",
    "        \n",
    "        #order_history（交易信息）（这是一个list，每次交易后append一下，list.append([‘2021-10-12’,’600001’,’20’,’100’,’买’])）\n",
    "        self.order_history = [] \n",
    "        \n",
    "        #return_history（收益率信息），这是一个datafrane，index是日期，values是收益率，这样写方便最后画图\n",
    "        self.return_history = pd.DataFrame(columns = ['ratio'],index = [])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "78d9d5ac",
   "metadata": {},
   "source": [
    "### 四、输出类output\n",
    "#### 该类包括以下几个函数：<br>\n",
    "1. get_plot()<br>\n",
    "   功能说明：将一个策略回测收益率画图，并计算这个策略的夏普比率、最大收益率、最小收益率。<br>\n",
    "\n",
    "2. get_order_history()<br>\n",
    "   功能说明：将一个策略回测所有交易历史输出成excel文件。<br>\n",
    "\n",
    "3. get_hold_histroy()<br>\n",
    "   功能说明：将一个策略回测每日持仓历史信息输出成excel文件<br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "217527e0",
   "metadata": {},
   "outputs": [],
   "source": [
    "###############输出模块,在循环结束后运行#########################\n",
    "import pandas as pd\n",
    "import matplotlib.ticker as ticker\n",
    "import matplotlib.pyplot as plt\n",
    "import statistics\n",
    "\n",
    "class output:\n",
    "    def __init__(self,my_history):\n",
    "        \n",
    "        self.my_history = my_history\n",
    "    def get_plot(self):#主要需要完成这里的画图\n",
    "        # 可视化（收益率画图），一个dataframe可以画折线图\n",
    "        plt.figure(figsize=(8, 6), dpi=80, facecolor='white')\n",
    "\n",
    "        plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "        plt.rcParams['axes.unicode_minus'] = False\n",
    "        date_list = self.my_history.return_history.index.tolist()\n",
    "        ax = plt.gca()\n",
    "        return_list = self.my_history.return_history.values.tolist()\n",
    "        import itertools\n",
    "        return_list = list(itertools.chain.from_iterable(return_list))\n",
    "        new_return_list = []\n",
    "        for item in return_list:\n",
    "            new_item = float(item) * 100\n",
    "            new_return_list.append(new_item)\n",
    "\n",
    "        ##导入指数的数据\n",
    "        index_data = pd.read_excel(\"./000001sh.xlsx\", header=0)  ##读入大盘十年的数据\n",
    "        index_data = index_data.set_index(\"时间\", inplace=False)\n",
    "        index_dict = {}\n",
    "\n",
    "        for item in date_list:\n",
    "            data_one = index_data.loc[item, \"Close\"]\n",
    "            index_dict[item] = data_one\n",
    "        #print(index_dict)\n",
    "        index_change=[0]\n",
    "        for i in range(1,len(date_list)):\n",
    "            date=date_list[i]\n",
    "            #print(date)\n",
    "            date_first=date_list[0]\n",
    "            #print(date_first)\n",
    "            current_level=index_dict[date]\n",
    "            #print(current_level)\n",
    "            initial_level=index_dict[date_first]\n",
    "            #print(initial_level)\n",
    "            change=(current_level/initial_level-1)*100\n",
    "            index_change.append(change)\n",
    "        #print(index_change)\n",
    "\n",
    "        plt.title(\" 策略回测结果 \", fontsize=20)\n",
    "        plt.xlabel('date', fontsize=15, loc='right')\n",
    "        plt.ylabel('income ratio (%)', fontsize=15, loc='top')\n",
    "        plt.plot(date_list, new_return_list, c='r',label='策略收益')\n",
    "        plt.plot(date_list, index_change, c='b',label='上证指数收益')\n",
    "        plt.xticks(rotation=90)\n",
    "        plt.grid(axis=\"y\", linestyle=\"--\")\n",
    "        plt.legend(loc='best')\n",
    "        ax.xaxis.set_major_locator(ticker.MultipleLocator(30))  # 日期的间隔\n",
    "        ax.spines['top'].set_visible(False)\n",
    "        ax.spines['right'].set_visible(False)\n",
    "\n",
    "        st_dev = statistics.pstdev(return_list)\n",
    "        r_f = statistics.mean(index_change)\n",
    "        sharp_ratio = (new_return_list[-1] - r_f) / st_dev/100\n",
    "        sharp_ratio= round(sharp_ratio, 2)\n",
    "        copylist = new_return_list.copy()\n",
    "        copylist.sort()\n",
    "        max_ratio = copylist[-1]\n",
    "        max_ratio=round(max_ratio, 2)\n",
    "        min_ratio = copylist[0]\n",
    "        min_ratio=round(min_ratio, 2)\n",
    "        sharp_text='夏普比率是：'+' '+str(sharp_ratio)\n",
    "        max_text='最大收益率是：'+' '+str(max_ratio)+'%'\n",
    "        min_text='最小收益率是：'+' '+str(min_ratio)+'%'\n",
    "        income_text='策略收益率是：'+''+str(round(new_return_list[-1],2))+'%'\n",
    "        plt.text(0, 120, sharp_text)\n",
    "        # plt.text(200, 120, sharp_ratio)\n",
    "        plt.text(0, 115, max_text)\n",
    "        # plt.text(200, 115, max_ratio)\n",
    "        # plt.text(0, 110, \"最小收益率是：\")\n",
    "        # plt.text(200, 110, min_ratio)\n",
    "        plt.text(0, 110, min_text)\n",
    "        plt.text(0, 105, income_text)\n",
    "        # plt.text(200, 105, round(new_return_list[-1],2))\n",
    "        # plt.text(235, 105, \"%\")\n",
    "\n",
    "        plt.show()\n",
    "\n",
    "\n",
    "        return \n",
    "    \n",
    "    def get_order_history(self):#会给一个list，list里每条记录一条交易信息[‘2021-10-12’,’600001’,’20’,’100’,’买’]\n",
    "        #交易订单信息输出dataframe\n",
    "        oh=self.my_history.order_history\n",
    "        df = pd.DataFrame(oh, columns=['Date', 'Ticker', 'Volume', 'Price', 'Buy_or_Sell'])\n",
    "        outputpath_1 = './history_order.xlsx'\n",
    "        df.to_excel(outputpath_1, index=True, header=True)\n",
    "        return\n",
    "    \n",
    "    def get_hold_histroy(self):#会给个dataframe，会记录日期、现金、股票、总价值\n",
    "        #每日持仓信息dataframe（日期、现金、股票代码及数量）\n",
    "        outputpath_2 = './history_hold.xlsx'\n",
    "        hh=self.my_history.hold_history\n",
    "        hh.to_excel(outputpath_2, index=True, header=True)\n",
    "        return"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "79f056a6",
   "metadata": {},
   "source": [
    "### 五、交易策略类strategy（我们的策略写在这里）<br>\n",
    "#### 主要包括以下几个函数：<br>\n",
    "1. get_strategy_golden_price_num(self,date)<br>\n",
    "   功能说明：执行量价双金叉策略<br>\n",
    "   \n",
    "   \n",
    "2. get_strategy_ETFchange(self,date)<br>\n",
    "   功能说明：执行ETF轮动策略<br>\n",
    "   \n",
    "   \n",
    "3. get_strategy_Randomforest(self,date)<br>\n",
    "   功能说明：执行随机森林量化策略<br>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "751d6020",
   "metadata": {},
   "source": [
    "## 策略说明\n",
    "### 策略一、量价双金叉策略\n",
    "#### 具体做法\n",
    "\n",
    "1. 每2天轮动换仓，求出满足量价双金叉的股票池，先空仓卖出，然后满仓等市值权重买入上个操作日至今涨幅最小的三只金股。<br>\n",
    "\n",
    "2. 若金股池为空，则当天不操作；若金股池有1-3只股票，则等市值权重买入池中所有股票；若金股池有三只以上股票，则等市值<br>\n",
    "   权重买入上个操作日至今涨幅最小的三只金股。\n",
    "   \n",
    "#### 概念解释\n",
    "\n",
    "双金叉股票：5日均线上穿10日均线、5日平均成交量上穿10日平均成交量\n",
    "\n",
    "#### 参数说明\n",
    "1. golden_buy_list： list，量价双金叉股票池（简称金股池）\n",
    "2. goldenprice_buy_list： list，价双金叉股票池\n",
    "3. goldennum_buy_list： list，量金叉股票池\n",
    "4. averageprice_last5d： float,上个交易日的5日均价\n",
    "5. averageprice_last10d：float,上个交易日的10日均价\n",
    "6. averageprice_5d：  float，本交易日的5日均价\n",
    "7. averageprice_10d：  float，本交易日的10日均价 \n",
    "8. averagenum_last5d： float,上个交易日的5日均量\n",
    "9. averagenum_last10d：float,上个交易日的10日均量\n",
    "10. averagenum_5d：  float，本交易日的5日均量\n",
    "11. param averagenum_10d：  float，本交易日的10日均量\n",
    "\n",
    "### 策略二、ETF轮动策略\n",
    "#### 具体做法\n",
    "6个etf，每个周期排一次序，比如五天，然后买涨幅最大的那个。\n",
    "\n",
    "### 策略三、随机森林量化策略\n",
    "#### 具体做法：应用随机森林算法选出最有可能上涨的股票。\n",
    "1. 每天进行一次随机森林计算，判断股票池内每只股票在当天上涨的概率，卖出所有存量股票并选取上涨概率最高的三支股票买入。<br>\n",
    "\n",
    "2. 如果最高的三个上涨概率都小于0.55，则当天不买入任何股票。<br>\n",
    "\n",
    "3. 训练集：2020年1月1日开始的，到交易日前两天为止的历史交易信息。<br>\n",
    "\n",
    "4. 预测集：交易日前一天的交易数据。通过前一天的数据预测；股票当天是否会上涨。<br>\n",
    "\n",
    "5. 训练集选用的特征：历史交易数据的每日开盘价、收盘价、市盈率、市净率、换手率、成交量等共15个特征。<br>\n",
    "\n",
    "6. 训练标签：相比前一天上涨为1，下跌为-1。<br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "e8169ba9",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "class strategy:\n",
    "        #####此区域写我们的交易策略#################################################################################\n",
    "    \"\"\"\n",
    "    策略：应用随机森林算法选出最有可能上涨的股票。\n",
    "        每天进行一次随机森林计算，判断股票池内每只股票在当天上涨的概率，卖出所有存量股票并选取上涨概率最高的三支股票买入。\n",
    "        如果最高的三个上涨概率都小于0.55，则当天不买入任何股票。\n",
    "        训练集：2020年1月1日开始的，到交易日前两天为止的历史交易信息。\n",
    "        预测集：交易日前一天的交易数据。通过前一天的数据预测；股票当天是否会上涨。\n",
    "        训练集选用的特征：历史交易数据的每日开盘价、收盘价、市盈率、市净率、换手率、成交量等共15个特征。\n",
    "        训练标签：相比前一天上涨为1，下跌为-1。\n",
    "        \n",
    "    \"\"\"\n",
    "    def __init__(self, date_all, me, buy_list, find,data_all,start_date):\n",
    "        self.date_all = date_all\n",
    "        self.me = me\n",
    "        self.buy_list = buy_list\n",
    "        self.find = find\n",
    "        self.data_all = data_all\n",
    "        self.start_date = start_date\n",
    "    \n",
    "    #######################量价双金叉策略#############################\n",
    "    def get_strategy_golden_price_num(self,date):\n",
    "                \n",
    "        golden_buy_list = []  \n",
    "        \n",
    "        goldenprice_buy_list = []    \n",
    "        for stock in self.buy_list:\n",
    "            averageprice_last5d = 0\n",
    "            for i in range(1,6):\n",
    "                date_i = self.find.get_date(date,-i)\n",
    "                averageprice_last5d += self.find.get_data(date_i,stock,'收盘价')\n",
    "            averageprice_last5d =averageprice_last5d/5    \n",
    "            averageprice_last10d = 0\n",
    "            for i in range(1,11):\n",
    "                date_i = self.find.get_date(date,-i)\n",
    "                averageprice_last10d += self.find.get_data(date_i,stock,'收盘价') \n",
    "            averageprice_last10d = averageprice_last10d/10\n",
    "            averageprice_5d = 0\n",
    "            for i in range(5):\n",
    "                date_i = self.find.get_date(date,-i)\n",
    "                averageprice_5d += self.find.get_data(date_i,stock,'收盘价')\n",
    "            averageprice_5d =averageprice_5d/5\n",
    "            averageprice_10d = 0\n",
    "            for i in range(10):\n",
    "                date_i = self.find.get_date(date,-i)\n",
    "                averageprice_10d += self.find.get_data(date_i,stock,'收盘价') \n",
    "            averageprice_10d = averageprice_10d/10\n",
    "            #5日均线上穿10日均线\n",
    "            if averageprice_5d > averageprice_10d and averageprice_last5d < averageprice_last10d:\n",
    "                goldenprice_buy_list += [stock]\n",
    "            \n",
    "        goldennum_buy_list = []        \n",
    "        for stock in self.buy_list:\n",
    "            averagenum_last5d = 0\n",
    "            for i in range(1,6):\n",
    "                date_i = self.find.get_date(date,-i)\n",
    "                averagenum_last5d += self.find.get_data(date_i,stock,'成交量(股)')\n",
    "            averagenum_last5d =averagenum_last5d/5\n",
    "            averagenum_last10d = 0\n",
    "            for i in range(1,11):\n",
    "                date_i = self.find.get_date(date,-i)\n",
    "                averagenum_last10d += self.find.get_data(date_i,stock,'成交量(股)') \n",
    "            averagenum_last10d = averagenum_last10d/10\n",
    "            averagenum_5d = 0\n",
    "            for i in range(5):\n",
    "                date_i = self.find.get_date(date,-i)\n",
    "                averagenum_5d += self.find.get_data(date_i,stock,'成交量(股)')\n",
    "            averagenum_5d =averagenum_5d/5\n",
    "            averagenum_10d = 0\n",
    "            for i in range(10):\n",
    "                date_i = self.find.get_date(date,-i)\n",
    "                averagenum_10d += self.find.get_data(date_i,stock,'成交量(股)') \n",
    "            averagenum_10d = averagenum_10d/10\n",
    "            #5日均量上穿10日均量\n",
    "            if averagenum_5d > averagenum_10d and averagenum_last5d < averagenum_last10d:\n",
    "                goldennum_buy_list += [stock]\n",
    "        \n",
    "        golden_buy_list = [stock for stock in goldenprice_buy_list if stock in goldennum_buy_list] \n",
    "        \n",
    "        \n",
    "        # 每2天轮动换仓\n",
    "        i = 2\n",
    "        #金股池没有股票的情况\n",
    "        if len(golden_buy_list) == 0:\n",
    "            return\n",
    "        #金股池只有一只股票的情况\n",
    "        elif len(golden_buy_list) == 1 and self.date_all.index(date) % i == 0: \n",
    "            self.me.sell_all(date)     #空仓卖出\n",
    "            stock_buy = golden_buy_list[0]   #要买入的股票代码\n",
    "            price_stock_buy = self.find.get_data(date,stock_buy,'收盘价') #要买入的股票价格\n",
    "            num = (self.me.cash-1000)/100 // price_stock_buy*100  #要买入的股票数量，减一千是为了留有一定资金避免现金为负，预留手续费\n",
    "            self.me.buy(stock_buy,num,date)      #买入\n",
    "        #金股池只有两只股票的情况    \n",
    "        elif len(golden_buy_list) == 2 and self.date_all.index(date) % i == 0: \n",
    "            self.me.sell_all(date)\n",
    "            stock_buy1 , stock_buy2 = golden_buy_list[0] , golden_buy_list[1]\n",
    "            price_stock_buy1 , price_stock_buy2 = self.find.get_data(date,stock_buy1,'收盘价') , self.find.get_data(date,stock_buy2,'收盘价')\n",
    "            num1 , num2 = (self.me.cash-1000)/2/100 // price_stock_buy1*100 , (self.me.cash-1000)/2/100 // price_stock_buy2*100  \n",
    "            self.me.buy(stock_buy1,num1,date)\n",
    "            self.me.buy(stock_buy2,num2,date)\n",
    "        #金股池有三只及以上股票的情况    \n",
    "        elif self.date_all.index(date) % i == 0:   \n",
    "            self.me.sell_all(date)\n",
    "            date_i = self.find.get_date(date,-i)\n",
    "            ##下面为按上个操作日至今涨幅升序排序金股池股票\n",
    "            stock_sorting = pd.DataFrame(columns=['涨幅'],index = [])\n",
    "            for stock in golden_buy_list:\n",
    "                price_i = self.find.get_data(date_i,stock,'收盘价')\n",
    "                price_today = self.find.get_data(date,stock,'收盘价')\n",
    "                rise = price_today/price_i - 1\n",
    "                stock_sorting.loc[stock] = {'涨幅':rise}\n",
    "            res = stock_sorting.sort_values(by='涨幅', ascending = True)\n",
    "            ##\n",
    "            stock_buy1 , stock_buy2 , stock_buy3 =  res.index[0] ,  res.index[1] ,  res.index[2]\n",
    "            price_stock_buy1 , price_stock_buy2 , price_stock_buy3 = self.find.get_data(date,stock_buy1,'收盘价') , self.find.get_data(date,stock_buy2,'收盘价') , self.find.get_data(date,stock_buy3,'收盘价')\n",
    "            num1 , num2 ,num3 = (self.me.cash-1000)/3/100 // price_stock_buy1*100 , (self.me.cash-1000)/3/100 // price_stock_buy2*100 , (self.me.cash-1000)/3/100 // price_stock_buy3*100\n",
    "            self.me.buy(stock_buy1,num1,date)\n",
    "            self.me.buy(stock_buy2,num2,date)\n",
    "            self.me.buy(stock_buy3,num3,date)\n",
    "            \n",
    "    #################ETF轮动策略#################################       \n",
    "    def get_strategy_ETFchange(self,date):\n",
    "        #6个etf，每个周期排一次序，比如五天，然后买涨幅最大的那个。\n",
    "        i = 5#周期\n",
    "        if self.date_all.index(date) % i == 0:\n",
    "            self.me.sell_all(date)\n",
    "            date_i = self.find.get_date(date,-i)\n",
    "            stock_sorting = pd.DataFrame(columns=['涨幅'],index = [])\n",
    "            for stock in self.buy_list:\n",
    "                price_i = self.find.get_data(date_i,stock,'收盘价')\n",
    "                price_today = self.find.get_data(date,stock,'收盘价')\n",
    "                rise = price_today/price_i - 1\n",
    "                stock_sorting.loc[stock] = {'涨幅':rise}\n",
    "            res = stock_sorting.sort_values(by='涨幅', ascending=False)\n",
    "            stock_buy = res.index[0]\n",
    "            price_stock_buy = self.find.get_data(date,stock_buy,'收盘价')\n",
    "            #计算数量这里取了100的倍数\n",
    "            num = (self.me.cash-1000)/100 // price_stock_buy*100#这里减一千是为了留有一定资金避免现金为负，预留手续费\n",
    "            self.me.buy(stock_buy,num,date)    \n",
    "            \n",
    "    ##################随机森林策略#################################################################################################   \n",
    "    def get_strategy_Randomforest(self,date):\n",
    "        # 用上半年作为训练集，下半年作为测试集，选20支龙头股票，预测涨的时候买入，跌的时候卖出。每三天换仓。\n",
    "        if date in self.date_all[:2]:\n",
    "            return\n",
    "        prob_list = []\n",
    "        base_list = []  # 可选20只股票的历史交易信息\n",
    "        stock_list = list(self.data_all['2020-01-16'].index)\n",
    "        for i in range(20):\n",
    "            base_list.append(self.find.get_hist_data('2020-01-02',date, stock_list[i]))\n",
    "        for i in range(20):\n",
    "            base_list[i] = base_list[i].rename(columns = {'开盘价': 'open', '收盘价' : 'close', '时间' : 'date'})\n",
    "            base_list[i]['close-open'] = (base_list[i]['close'] - base_list[i]['open']) / base_list[i]['open']\n",
    "            base_list[i]['pre-close'] =  base_list[i]['close'].shift(1)\n",
    "            base_list[i]['price-change'] = base_list[i]['close'] - base_list[i]['pre-close']\n",
    "            base_list[i]['p-change'] = base_list[i]['price-change'] / base_list[i]['pre-close'] * 100\n",
    "            base_list[i] = base_list[i].dropna(how=\"any\")\n",
    "\n",
    "            \n",
    "            X = base_list[i][['open','close', '涨跌幅(%)', '成交量(股)','成交笔数', '成交金额','总股本(股)', '总市值', '市盈率(TTM)', 'PE市盈率', 'PB市净率', 'PS市销率', 'PCF市现率', '换手率(%)', 'price-change']]\n",
    "            y = np.where(base_list[i]['price-change'].shift(-1) > 0, 1, -1) # 标签\n",
    "\n",
    "            \n",
    "            X_train, X_test = X[:-1], X[-1:]\n",
    "            y_train, y_test = y[:-1], y[-1:]\n",
    "\n",
    "            model = RandomForestClassifier(max_depth=3, n_estimators=10, min_samples_leaf=10, random_state=1)\n",
    "            model.fit(X_train, y_train)\n",
    "            y_pred_proba = model.predict_proba(X_test)\n",
    "            # print(y_pred_proba)\n",
    "            # print(type(y_pred_proba))\n",
    "            # print(y_pred_proba[0][1])\n",
    "            prob_list.append(y_pred_proba[0][1])\n",
    "            # print(prob_list)\n",
    "        prob_list.sort(reverse= True)   # 排序\n",
    "        # print(prob_list)\n",
    "        buy_index_list = [] # 获取最有可能上涨的三支股票的index\n",
    "        for i in range(3):\n",
    "            buy_index_list.append(prob_list.index(prob_list[i]))\n",
    "        forest_buy_list = [stock_list[i] for i in buy_index_list]    \n",
    "        if prob_list[2] > 0.55:\n",
    "            self.me.sell_all(date)     #空仓卖出\n",
    "\n",
    "            stock_buy1, stock_buy2, stock_buy3 = forest_buy_list[0], forest_buy_list[1], forest_buy_list[2]\n",
    "            price_stock_buy1 , price_stock_buy2 , price_stock_buy3 = self.find.get_data(date,stock_buy1,'收盘价') , self.find.get_data(date,stock_buy2,'收盘价') , self.find.get_data(date,stock_buy3,'收盘价')\n",
    "            num1 , num2 ,num3 = (self.me.cash-1000)/3/100 // price_stock_buy1*100 , (self.me.cash-1000)/3/100 // price_stock_buy2*100 , (self.me.cash-1000)/3/100 // price_stock_buy3*100\n",
    "            self.me.buy(stock_buy1,num1,date)\n",
    "            self.me.buy(stock_buy2,num2,date)\n",
    "            self.me.buy(stock_buy3,num3,date)\n",
    "\n",
    "            # stock_buy = forest_buy_list[0]   #要买入的股票代码\n",
    "            # price_stock_buy = find.get_data(date,stock_buy,'收盘价') #要买入的股票价格\n",
    "            # num = (me.cash-1000)/100 // price_stock_buy*100  #要买入的股票数量，减一千是为了留有一定资金避免现金为负，预留手续费\n",
    "            # me.buy(stock_buy,num)\n",
    "           \n",
    "        else:\n",
    "            self.me.sell_all(date)\n",
    "           "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0c87f4dd",
   "metadata": {},
   "source": [
    "### 六、 收盘后数据更新和记录模块trade_after\n",
    "#### 功能\n",
    "1. 更新每日持仓数据价格\n",
    "2. 记录每日持仓\n",
    "3. 记录收益率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3424f2e4",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "class after_trade:\n",
    "    #初始化现金、总市值、股票持仓、股票价值\n",
    "    def __init__(self, me,my_history,start_date,find,cash):\n",
    "        self.me = me\n",
    "        self.my_history = my_history\n",
    "        self.start_date = start_date\n",
    "        self.find = find\n",
    "        self.cash = cash\n",
    "        \n",
    "    def after_trade(self,date):\n",
    "        stock_in_stock_hold = self.me.stock_hold.index.tolist()\n",
    "        num = self.me.stock_hold['num'].tolist()\n",
    "        price = []\n",
    "        if len(stock_in_stock_hold) != 0:\n",
    "            for stock in stock_in_stock_hold:\n",
    "                price.append(self.find.get_data(date,stock,'收盘价'))\n",
    "        stock_data = {'num':num,'price':price}\n",
    "        self.me.stock_hold = pd.DataFrame(stock_data,index = stock_in_stock_hold)\n",
    "        self.me.stock_value = sum(self.me.stock_hold['num']*self.me.stock_hold['price'])\n",
    "        self.me.total_value = self.me.cash + self.me.stock_value\n",
    "                \n",
    "        #记录每日持仓\n",
    "        self.my_history.hold_history.loc[date] = {'cash':self.me.cash,'stock':stock_in_stock_hold,'total_value':self.me.total_value}#记录持仓信息,可能做成stock_hold\n",
    "            \n",
    "        #记录收益率\n",
    "        if date == self.start_date:#如果是第一天，收益率记为0\n",
    "            return_today = 0\n",
    "        else:\n",
    "            return_today = self.me.total_value/self.cash -1#return_today = total_value(今天)/total-value(昨天)-1\n",
    "        self.my_history.return_history.loc[date] = {'ratio':round(return_today,4)}#记录收益率,保留四位小数"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b09a1dc3",
   "metadata": {},
   "source": [
    "### 七、主函数模块（回测模块）\n",
    "#### 模块重要参数（用户回测前给定，下面是参数举例，都可以修改）<br>\n",
    "1.  start_date = '2017-01-03'<br>\n",
    "    参数说明：说明回测开始时间<br>\n",
    "2.  end_date = '2021-11-05'<br>\n",
    "    参数说明：回测结束时间<br>\n",
    "3.  commission = 0.0005<br>\n",
    "    参数说明：手续费<br>\n",
    "4.  cash = 1000000 <br>\n",
    "    参数说明：一百万初始资金<br>\n",
    "5.  me = porfolio(cash) <br>\n",
    "    参数说明：创建我的账户，里面记录了现金、股票持仓、资产总价值、股票市值、资产总市值<br>\n",
    "6.  buy_list = data_all[start_date].index.tolist()<br>\n",
    "    参数说明：获取将要买的股票池，此处默认为导入数据的股票池<br>\n",
    "7.  my_history = history()<br>\n",
    "    参数说明：创建我的历史信息，里面记录了历史持仓信息，历史订单信息，历史收益率信息<br>\n",
    "8.  date_all = find.get_date_all(start_date, end_date)<br>\n",
    "    参数说明：通过这个函数得到从开始到结束所有交易日的日期<br>\n",
    "9.  path = \"./Python_2020.xlsx\"<br>\n",
    "    参数说明：选取目标数据文件地址<br>\n",
    "\n",
    "回测执行逻辑:按照所选回测区间对日期进行循环，每日执行get_strategy()（策略函数）和after_trade()（收盘后数据更新函数）<br>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ef630748",
   "metadata": {},
   "source": [
    "## 策略一、量价双金叉策略\n",
    "1. 回测时间：2020-01-16到2020-11-16\n",
    "2. 回测结果：11个月实现78.54%的收益率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "47817d1d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "************************* 历史持仓 *************************\n",
      "                  cash                              stock   total_value\n",
      "2020-01-16   1156.8280  [601236.SH, 601229.SH, 600050.SH]  9.995008e+05\n",
      "2020-01-17   1156.8280  [601236.SH, 601229.SH, 600050.SH]  9.821268e+05\n",
      "2020-01-20  16099.0095                        [688012.SH]  9.929540e+05\n",
      "2020-01-21  16099.0095                        [688012.SH]  9.541240e+05\n",
      "2020-01-22    805.9690                        [600085.SH]  1.119937e+06\n",
      "...                ...                                ...           ...\n",
      "2020-11-10  14783.1930  [002821.SZ, 601328.SH, 600332.SH]  1.856477e+06\n",
      "2020-11-11    129.2935                        [600919.SH]  1.803457e+06\n",
      "2020-11-12    129.2935                        [600919.SH]  1.794559e+06\n",
      "2020-11-13   1825.3595                        [000768.SZ]  1.772025e+06\n",
      "2020-11-16   1825.3595                        [000768.SZ]  1.785385e+06\n",
      "\n",
      "[200 rows x 3 columns]\n",
      "************************* 历史订单 *************************\n",
      "             日期         股票      买卖数量     价格 买或卖\n",
      "0    2020-01-16  601236.SH   16900.0  19.70   买\n",
      "1    2020-01-16  601229.SH   36300.0   9.16   买\n",
      "2    2020-01-16  600050.SH   55300.0   6.02   买\n",
      "3    2020-01-20  601236.SH   16900.0  19.24   卖\n",
      "4    2020-01-20  601229.SH   36300.0   9.16   卖\n",
      "..          ...        ...       ...    ...  ..\n",
      "280  2020-11-11  601328.SH  134100.0   4.64   卖\n",
      "281  2020-11-11  600332.SH   19700.0  30.76   卖\n",
      "282  2020-11-11  600919.SH  296600.0   6.08   买\n",
      "283  2020-11-13  600919.SH  296600.0   5.98   卖\n",
      "284  2020-11-13  000768.SZ   66800.0  26.50   买\n",
      "\n",
      "[285 rows x 5 columns]\n",
      "************************* 历史收益率 *************************\n",
      "             ratio\n",
      "2020-01-16       0\n",
      "2020-01-17 -0.0179\n",
      "2020-01-20  -0.007\n",
      "2020-01-21 -0.0459\n",
      "2020-01-22  0.1199\n",
      "...            ...\n",
      "2020-11-10  0.8565\n",
      "2020-11-11  0.8035\n",
      "2020-11-12  0.7946\n",
      "2020-11-13   0.772\n",
      "2020-11-16  0.7854\n",
      "\n",
      "[200 rows x 1 columns]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "###################主模块#######################    \n",
    "import pandas as pd\n",
    "from find import find\n",
    "from porfolio import porfolio\n",
    "from history import history\n",
    "from strategy import strategy\n",
    "from output import output\n",
    "from trade_after import after_trade\n",
    "###################主模块#######################    \n",
    "if __name__ == '__main__':\n",
    "##################导入总数据#####################\n",
    "    #输入数据路径\n",
    "    path = \"./Python_2020.xlsx\"#量价双金叉策略和随机森林策略所用数据\n",
    "    #path = \"./python_etf_6只.xlsx\"#ETF轮动策略所用数据\n",
    "    data_all = find.get_data_all(path)    #到时候写在jupyter里时，这个地方预先导入，运算不会这么慢\n",
    "    \n",
    "##################账户初始化#########################\n",
    "    #量价双金叉策略时间：2020-01-16到2020-11-16\n",
    "    #ETF轮动策略时间：2017-01-03到2021-11-05\n",
    "    #随机森林量化策略时间:2020-04-30到2020-07-31\n",
    "    start_date = '2020-01-16'#回测开始时间\n",
    "    end_date = '2020-11-16'#回测结束时间\n",
    "    commission = 0.0005#手续费\n",
    "    cash = 1000000 #一百万初始资金\n",
    "    buy_list = data_all[start_date].index.tolist()#获取将要买的股票池，此处默认为导入数据的池子\n",
    "    \n",
    "###############创建各个对象#################################    \n",
    "    my_history = history() ##创建我的历史信息 \n",
    "    date_all = find.get_date_all(data_all, start_date,end_date)#通过这个函数得到从开始到结束所有交易日的日期\n",
    "    find = find(data_all, date_all)#定义找数据对象\n",
    "    me = porfolio(cash,start_date,commission,my_history,find) #创建我的账户\n",
    "    strategy = strategy(date_all,me,buy_list,find,data_all,start_date)#创建策略对象\n",
    "    after = after_trade(me,my_history,start_date,find,cash)#创建收盘对象\n",
    "    output = output(my_history)#创建输出对象\n",
    "    \n",
    "#####################回测模块##########################################################\n",
    "    for date in date_all:#根据日期循环\n",
    "        ###可选用自己准备用的策略，也可以自定义策略\n",
    "        \n",
    "        strategy.get_strategy_golden_price_num(date)#量价双金叉策略\n",
    "        #strategy.get_strategy_ETFchange(date)#ETF轮动策略\n",
    "        #strategy.get_strategy_Randomforest(date)#随机森林策略\n",
    "        \n",
    "        #策略收盘后，记录每日账户信息、持仓信息、收益率数据，更新今日数据最新股价数据,先分别提出来list再更新了price后组合\n",
    "        after.after_trade(date) \n",
    "######################输出模块##########################################\n",
    "    print('*'*25,'历史持仓','*'*25)\n",
    "    print(my_history.hold_history)\n",
    "    print('*'*25,'历史订单','*'*25)\n",
    "    order_all = pd.DataFrame(my_history.order_history,columns=['日期','股票','买卖数量','价格','买或卖'])\n",
    "    print(order_all)\n",
    "    print('*'*25,'历史收益率','*'*25)\n",
    "    print(my_history.return_history)\n",
    "    output.get_plot()#画图，输出一个每日收益率csv文件\n",
    "    output.get_order_history()#输出一个下单csv文件或者只dataframe\n",
    "    output.get_hold_histroy()#输出一个每日持仓csv文件或者只dataframe"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "71e4f18a",
   "metadata": {},
   "source": [
    "## 策略二、ETF轮动策略\n",
    "1. 回测时间：2017-01-03到2021-11-05\n",
    "2. 回测结果：4年半时间实现71.23%的收益率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "3552a562",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "************************* 历史持仓 *************************\n",
      "                 cash        stock   total_value\n",
      "2017-01-03  729.61450  [510500.OF]  9.995006e+05\n",
      "2017-01-04  729.61450  [510500.OF]  1.011740e+06\n",
      "2017-01-05  729.61450  [510500.OF]  1.011286e+06\n",
      "2017-01-06  729.61450  [510500.OF]  1.006602e+06\n",
      "2017-01-09  729.61450  [510500.OF]  1.014308e+06\n",
      "...               ...          ...           ...\n",
      "2021-11-01  456.40392  [513100.OF]  1.659204e+06\n",
      "2021-11-02  456.40392  [513100.OF]  1.662389e+06\n",
      "2021-11-03  456.40392  [513100.OF]  1.670352e+06\n",
      "2021-11-04  358.87367  [513100.OF]  1.691592e+06\n",
      "2021-11-05  358.87367  [513100.OF]  1.712275e+06\n",
      "\n",
      "[1177 rows x 3 columns]\n",
      "************************* 历史订单 *************************\n",
      "             日期         股票      买卖数量      价格 买或卖\n",
      "0    2017-01-03  510500.OF  151100.0  6.6100   买\n",
      "1    2017-01-10  510500.OF  151100.0  6.6830   卖\n",
      "2    2017-01-10  513100.OF  550700.0  1.8320   买\n",
      "3    2017-01-17  513100.OF  550700.0  1.8360   卖\n",
      "4    2017-01-17  510050.OF  464700.0  2.1739   买\n",
      "..          ...        ...       ...     ...  ..\n",
      "466  2021-10-21  513100.OF  318800.0  5.0470   买\n",
      "467  2021-10-28  513100.OF  318800.0  5.1160   卖\n",
      "468  2021-10-28  513100.OF  318500.0  5.1160   买\n",
      "469  2021-11-04  513100.OF  318500.0  5.3150   卖\n",
      "470  2021-11-04  513100.OF  318200.0  5.3150   买\n",
      "\n",
      "[471 rows x 5 columns]\n",
      "************************* 历史收益率 *************************\n",
      "             ratio\n",
      "2017-01-03       0\n",
      "2017-01-04  0.0117\n",
      "2017-01-05  0.0113\n",
      "2017-01-06  0.0066\n",
      "2017-01-09  0.0143\n",
      "...            ...\n",
      "2021-11-01  0.6592\n",
      "2021-11-02  0.6624\n",
      "2021-11-03  0.6704\n",
      "2021-11-04  0.6916\n",
      "2021-11-05  0.7123\n",
      "\n",
      "[1177 rows x 1 columns]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "###################主模块#######################    \n",
    "import pandas as pd\n",
    "from find import find\n",
    "from porfolio import porfolio\n",
    "from history import history\n",
    "from strategy import strategy\n",
    "from output import output\n",
    "from trade_after import after_trade\n",
    "###################主模块#######################    \n",
    "if __name__ == '__main__':\n",
    "##################导入总数据#####################\n",
    "    #输入数据路径\n",
    "    #path = \"./Python_2020.xlsx\"#量价双金叉策略和随机森林策略所用数据\n",
    "    path = \"./python_etf_6只.xlsx\"#ETF轮动策略所用数据\n",
    "    data_all = find.get_data_all(path)    #到时候写在jupyter里时，这个地方预先导入，运算不会这么慢\n",
    "    \n",
    "##################账户初始化#########################\n",
    "    #量价双金叉策略时间：2020-01-16到2020-11-16\n",
    "    #ETF轮动策略时间：2017-01-03到2021-11-05\n",
    "    #随机森林量化策略时间:2020-04-30到2020-07-31\n",
    "    start_date = '2017-01-03'#回测开始时间\n",
    "    end_date = '2021-11-05'#回测结束时间\n",
    "    commission = 0.0005#手续费\n",
    "    cash = 1000000 #一百万初始资金\n",
    "    buy_list = data_all[start_date].index.tolist()#获取将要买的股票池，此处默认为导入数据的池子\n",
    "    \n",
    "###############创建各个对象#################################    \n",
    "    my_history = history() ##创建我的历史信息 \n",
    "    date_all = find.get_date_all(data_all, start_date,end_date)#通过这个函数得到从开始到结束所有交易日的日期\n",
    "    find = find(data_all, date_all)#定义找数据对象\n",
    "    me = porfolio(cash,start_date,commission,my_history,find) #创建我的账户\n",
    "    strategy = strategy(date_all,me,buy_list,find,data_all,start_date)#创建策略对象\n",
    "    after = after_trade(me,my_history,start_date,find,cash)#创建收盘对象\n",
    "    output = output(my_history)#创建输出对象\n",
    "    \n",
    "#####################回测模块##########################################################\n",
    "    for date in date_all:#根据日期循环\n",
    "        ###可选用自己准备用的策略，也可以自定义策略\n",
    "        \n",
    "        #strategy.get_strategy_golden_price_num(date)#量价双金叉策略\n",
    "        strategy.get_strategy_ETFchange(date)#ETF轮动策略\n",
    "        #strategy.get_strategy_Randomforest(date)#随机森林策略\n",
    "        \n",
    "        #策略收盘后，记录每日账户信息、持仓信息、收益率数据，更新今日数据最新股价数据,先分别提出来list再更新了price后组合\n",
    "        after.after_trade(date) \n",
    "######################输出模块##########################################\n",
    "    print('*'*25,'历史持仓','*'*25)\n",
    "    print(my_history.hold_history)\n",
    "    print('*'*25,'历史订单','*'*25)\n",
    "    order_all = pd.DataFrame(my_history.order_history,columns=['日期','股票','买卖数量','价格','买或卖'])\n",
    "    print(order_all)\n",
    "    print('*'*25,'历史收益率','*'*25)\n",
    "    print(my_history.return_history)\n",
    "    output.get_plot()#画图，输出一个每日收益率csv文件\n",
    "    output.get_order_history()#输出一个下单csv文件或者只dataframe\n",
    "    output.get_hold_histroy()#输出一个每日持仓csv文件或者只dataframe"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0ab787f2",
   "metadata": {},
   "source": [
    "## 策略三、随机森林量化策略\n",
    "1. 回测时间：2020-04-30到2020-07-31\n",
    "2. 回测结果：3个月收益率为0.65%，主要是因为我们指标选取随意，如果精选下因子应该结果会好很多。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "babebb10",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "************************* 历史持仓 *************************\n",
      "                 cash                              stock   total_value\n",
      "2020-04-30    1000000                                 []       1000000\n",
      "2020-05-06    1000000                                 []       1000000\n",
      "2020-05-07   5805.151  [600000.SH, 600009.SH, 600010.SH]    999503.151\n",
      "2020-05-08   2716.873  [600000.SH, 600009.SH, 600010.SH]   1000040.873\n",
      "2020-05-11   2923.361  [600000.SH, 600009.SH, 600010.SH]    993836.361\n",
      "...               ...                                ...           ...\n",
      "2020-07-27  6642.9295  [600000.SH, 600009.SH, 600010.SH]  1004282.9295\n",
      "2020-07-28  6122.4345  [600000.SH, 600009.SH, 600010.SH]  1008376.4345\n",
      "2020-07-29   1690.781  [600000.SH, 600009.SH, 600010.SH]   1024049.781\n",
      "2020-07-30  3242.9885  [600000.SH, 600009.SH, 600010.SH]  1010754.9885\n",
      "2020-07-31   3760.538  [600000.SH, 600009.SH, 600010.SH]   1006450.538\n",
      "\n",
      "[62 rows x 3 columns]\n",
      "************************* 历史订单 *************************\n",
      "             日期         股票      买卖数量     价格 买或卖\n",
      "0    2020-05-07  600000.SH   32000.0  10.39   买\n",
      "1    2020-05-07  600009.SH    4800.0  68.40   买\n",
      "2    2020-05-07  600010.SH  294600.0   1.13   买\n",
      "3    2020-05-08  600000.SH   32000.0  10.44   卖\n",
      "4    2020-05-08  600009.SH    4800.0  69.00   卖\n",
      "..          ...        ...       ...    ...  ..\n",
      "316  2020-07-31  600009.SH    4900.0  67.93   卖\n",
      "317  2020-07-31  600010.SH  287800.0   1.17   卖\n",
      "318  2020-07-31  600000.SH   32300.0  10.36   买\n",
      "319  2020-07-31  600009.SH    4900.0  67.93   买\n",
      "320  2020-07-31  600010.SH  286500.0   1.17   买\n",
      "\n",
      "[321 rows x 5 columns]\n",
      "************************* 历史收益率 *************************\n",
      "             ratio\n",
      "2020-04-30       0\n",
      "2020-05-06     0.0\n",
      "2020-05-07 -0.0005\n",
      "2020-05-08     0.0\n",
      "2020-05-11 -0.0062\n",
      "...            ...\n",
      "2020-07-27  0.0043\n",
      "2020-07-28  0.0084\n",
      "2020-07-29   0.024\n",
      "2020-07-30  0.0108\n",
      "2020-07-31  0.0065\n",
      "\n",
      "[62 rows x 1 columns]\n"
     ]
    },
    {
     "data": {
      "image/png": "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5+enK1euyMfHRxcuXFDmzJlTPAYAwL2BMElElSpV9P3336tZs2Zq2rSplixZotDQUF29etV7mqN+/frKmzdvgsfOmjVLderU0YABA7Rw4cJkn6dRo0bKkyePTp8+rbCwMG3ZskWjR4/23r906VIdPXpUERER6tq1a4LHd+rUSbVr15YkrV+/Xr169VLr1q311VdfKXfu3Nq7d6+GDRumCRMmaNy4cerWrZuaN2+uAQMGaMGCBQoICJDkCY+jR496T4+4XC5FRkZq1apVSpcunQ4cOKDixYtr6dKlqlWrVorfz7Zt2+qLL75QYGCgQkNDlS5dukS3K1y4sFwul7788ktlyJBBM2bM0IYNG3T58mW1adNGpUqV0sWLF1W9enXNnTs33hEgAMD9gTBJRqZMmVSsWDH99ttvypAhg8aOHasBAwbo/fffV9OmTRNsf/78eQ0cOFBr165Vr1699MUXX+j555/33n/gwAEdPHhQ9erV044dOyRJfn5+at26tbp27arg4GBvLEie8Ni+fbtefPFFLViwQCEhITpy5IhiY2OVM2dOrV+/3htKQUFBmjx5svLmzats2bJp48aNSp06tdavXy+3260VK1bo6tWrkqTevXurd+/e6tevn5o1a+Y9pbNgwQK53W45nU75+f33P418+fJp5cqVKlmyZIrfw/3792vNmjWaM2eOJOmdd97R999/n+j75+PjoxUrVmjVqlUaOHCgXnjhBe/RlfXr12vixImaP3++GjdurNWrV6tJkyYpHg8AwDbCJBlbt27Ve++9p8OHD6thw4YKDQ3VpUuXlCNHDmXNmjXetufPn1ejRo304YcfKnfu3BoxYoSqVaumHDlyqF69epI8f8HPmzdPISEhat26tfexwcHB2rFjh7p3755gDP+ceHsth8Ph/X2PHj3kdDq92x85ckQul0srV66U5LnS5+rVq5o3b56yZMmi8PBwDRs2zDsRd+PGjapZs6bcbrdcLpdWrVrl3Xd0dLS2b9+uggULJnm1UVKuXLmiXbt26fLly3K5XNqwYYN3/k1iAgICVLBgQZ09e1a9evXy3r5hwwZVrlxZ//nPfxQQECCn05micQAA7g2ESSIuX76sRYsWKWfOnCpfvrx8fHw0Y8YMjR07VgULFlSnTp3kcrnk4+Ojq1evaurUqfr444/VrVs3tWnTRpKUMWNGzZkz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JgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQJgAAwAzCBAAAmEGYAAAAMwgTAABgBmECAADMIEwAAIAZhAkAADCDMAEAAGYQ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jb979+6aOXOm1q9fH+/2uEhKLpbeeOMNXbp0ScOGDZMkHT58WG+//bZ69+6tX375RT179lRgYKA3bp577jl9//338U5XRUVFKSoqKtGxxU3da9q0aaLPP2LECI0YMSLB7Xny5ElyzMD/CvIcMCRjxoyqUaOGDh48qKNHj+rEiRMqWrSoZs2apaxZs+rEiRNavny5hg0bJofDoRMnTujEiROKiYnRyJEjVb58eR0/flyHDx/W4cOHvfu93hGN8PBwPfPMM/Lx8dHSpUsVFBSk7t27y+1269VXX5XkOaKQlH+GyaxZs5Q6deokv7p06ZJgH3FHGeK89957qlmzpk6dOpXoc2bKlElXr15V+vTpk31t//T5559rxowZatq0qYoVK6YzZ87o/fffV0xMjAYOHKhixYopa9asSps2rTeg4k4FxX3v5+entGnTKmvWrPFOA8WJmwi8adMmud1u79eff/4pSerfv3+8291ut/Lnzy+Xy5Wi1wLcjzhiAhhTvnx573yJ5BQqVCjZ+x977DGtXbv2hp4zVapUatasmTJkyKCqVauqX79+6tatm+rUqaNly5Zp1KhR132+a8Udaejdu3e8ybunT59W165dr3sER5IiIyP1888/q2zZslq8eHGCScBx+0hJmLjdbr377ruSpO+++847n0aSateurddff12StH37djmdTqVOnVo+Pj7ey4T37dsnyXPa5fLly8qXL5+yZcuW4Hnijvak1M0+DrifECaAMRMnTvTO+0jsSMfUqVP17bff6ocffkj0frfbrejo6EQvE167dq03eq6NljRp0ui9997zft+pUycNGzZMy5Yt01NPPaXOnTun6DXEhUlISIhq1arlvf3QoUM3HCajRo1SiRIl9Oqrr+qZZ55JcBlt3FGMlFwO7XA41KVLF50+fVqPPPKIsmfPrk6dOikmJkaTJk3y7rNdu3basmVLgsf/M87i5un805UrVyR5IjMxffr0UZ8+fRLcntJLu4H7EWECGBM3GTMpcVe+1K5dO8WXl167ENvkyZMTXZjt999/16uvvqq///5bQUFBWrBggTp27Kju3bvrkUceSdHzJSWxq2QS0759e0lS6dKlE5zqiTtdktL34P333/f+fty4cTp37pzGjh2rfPnyeW//9NNPFRsbK39//0TH6nQ6FRUVpUcffTTR5+jXr1+ilyAfPHhQ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Ll++LMlzeVvWrFm19pprCqtWraozZ85o165dkqQ0adKoWrVq2rJli86cOSNJypcvn4KDg/XTTz95H1e2bFm5XC79+uuvkjyXwNWpU0c7d+7U33//LUnKli2bypQpo9WrVysqKkqS9OijjypTpkxat26dd1/Vq1fXiRMntGfPHklS2rRp9dhjj2nTpk06d+6cJM9nQBUsWFDLli3zPq58+fKKiYnRtv+/VtLX11e1atXSjh07vEfxcuTIoVKlSmnVqlW6evWqJKlo0aJKnz59vPiuUaOGjh07pr1790ryXHJYpUoVbdy40Xt1W4ECBVSgQAGtiDv+LalChQqKiorS77//LslziLdmzZr6448/dOzYMUlSzpw5VbJkSa1YscL7qabFixdXmjRp4n2S6eOPP67Dhw9r//8v682fp0OS+POU1J+nr78uIOkR1a9/WUuWrJEkZcqUR1JRzZ17Uvnzb5OU9J8nh6Og/vrLV/XrH9aSJX+qdu3yKlEinUaN8lXJkmv1wAPR1/3zlC1bNu9/03E/G8nz5ycmJsb7597X11dp06ZVRESE92cfEBCgVKlSef+7kqSgoCC5XC5duXLF+z6kT59ely9f9j6Pv7+/0qRJo/DwcO/PMHXq1PLx8VFkZGS8MURHR3v/3FsdQ2BgoPz9/eONIW3atHI6nd4x+Pj4KF26dPHGkCpVKqVOnTreGNKkSSOHwxFvDOnTp9fVq1d15coVLVu2LN6fp2svf07MHT2VE+fcuXOqWrWq5s2bp8cff9z7H99PP/2kOXPmaPz48dfdB6dyAODO++dpHEnavt2zwFrPntInnyT/+AkTpA4dPPNUmjb13LZypfTEE1LLlp7LiJNzL5zKiYuCe+lz5KKiouTn53dL57HcE6dyJCkmJkYtW7bUBx98oEKFCsV7E2JjY1mgDQCMSuw0jiQVKSJlzHhjC60tXy45HNLjj//3tscfl+rXl2bNkjZvvsWDvgsWLVqkV199NdH7Nm/erBEjRkjyBEzckcQ4LpdL0dHR3u/fffddzbxerUn68ccftXz5cr3++utavHixevXqpatXr6pBgwbeI5j/NGLECE2YMEGS9NVXXyW7eOqGDRvirbMybtw4vfXWW9cd1824o2HidDr13HPPqV69enr22WclSUWKFPEeygwLC1OB//VPgwIAo669GudaPj7SY49JW7ZI/38WIFEul+eKnNKlE050/fhjz3569kz5Ym3WBAYGJnn576OPPqrJkydr48aNGjBggGrUqKGQkBAFBgYqJCRENWrU0HvvvefdPlWqVN59BQcHKywsTN99951GjhypefPmebcLCQnRmjVr5O/vr8uXL+vq1atyOBw6duxYvI+QkTzhdPbsWQUEBHiXtf/222/jfehg3EGC2NhYxcbGqmLFinI6nd5TzF988YVeeuklud1u7ymjW+WOzjGZMmWKfvjhBx07dkzff/+9smfPrjfffFNt27ZV/fr1NWvWLCa/AoBR337rOTJSq1bC+6pWlRYu9Fz+e82H3sbz++/S2bPSiy8mvK9oUc/tkyZJixZ5jqDcj4KCgrRw4ULlzp1bFStW1IcffijJM/9m1apV8batW7eu/vzzT6VJk0YXL16Un5+fMmXKpJIlSypt2rQ6deqUtmzZorJly6pr167atGmTfvvtN+9csoEDB+rw4cOqWrWqJKlSpUoaOnSoRo0apUceecT7PAcOHNCvv/6qd999V1FRUTp8+LDy5MmjBQsWKCwsTMOHD5efn598fHzUqFEjSZ74evXVV+VyuZQlSxbNnTv3lr1Hd2WOyT/t379f69evV82aNZUrbtWd62COCQDcOfv2ea6kadfOs5jaP61Z4wmSAQOkd99NfB/DhnmOiPz4o1S3bsL7jx3zXKlToIDnE4sTm+7wz3kLTz/tudT4dnn44ZR/gPGPP/6oZ599VtmzZ5fkOWVTqlQpDRs2TAcPHpSvr69q1qwZ7zEPPvigd+J1nKtXr2rQoEEqUqSImjRpotKlS6t3797KmjWrJOk///mPXC6Xxo4dq9jYWLVs2VL79u1TyZIl9eqrr2rOnDkqWbKkWrdurfLly2v9+vXy8/NTgwYNNHr0aP34448KDAzUunXrFB0drSlTpmjz5s2aNGmSJk6cGG8sBw4c0JtvvqkPP/xQRYsW1auvvqpy5cqpWbNmypQpU6Lvwz0zxyQxDz/8sFq3bn3DUQIAuLOSOo0Tp3x5z7yT5OaZLF8u+ft7jq4kJnduqUcPaedO6f8v1rxnNWnSRPv27dO+fft0+PBh/fDDD8qYMaNy586tl19+WZJ06tQp77QGyXN1Vbly5fTVV19Jkvc0y759+7R9+3YNGDBAv/32m5YtW6Zly5Ypa9as6tu3r5xOpxo2bKiaNWvq8ccfV82aNTV27FjNmjXLe5Wej49PohNbT548qT///FMXL17Utm3btHfvXj300EPe+8+dO6cBAwaoTZs2atu2rYoWLSqHw6H+/fsrMjJSVatW9R71uVX+N5aRAwD8K7NnJ30aR/IssFaunLRunWcuyT8/6DY6Wvr5Z6lyZSkoKOnneestz5U777/vuUonuW2llB/NuJuyZcumbNmyKej/X5SPj49OnTrlvf/aS8AvX76sRYsWacGCBfL19VWDBg302WefxZsYe/LkSfXu3Vu+vr6aMmWK/P399dxzz+nTTz/1Lk/wyy+/6OTJk8qbN2+iY8qRI4dWrlyp6dOna+HChTp27JhatWrlvX/79u365Zdf5Ha79cknn+iTf1x2VaVKFXXv3v2WvD9xCBMAQLL27ZN+/dVzGie5j3SpWtUTJjt2eC4fvtYvv0iRkdI/zmAkkC6d1Lev1Lmz9OWXnkuL70fnz59P9v4rV67ot99+U5kyZVSnTh2VKFFCp06direcRtu2beXv7y9J6tKlizZt2qT06dOrRo0aOnLkiPbv368qVapo5cqVqlChgiTPVT87duzQ888/r/DwcL3++uvy8/NTkyZNVLlyZfn7+2vMmDHe54hb7+nw4cMqV66cVq1apZdfflnvvfeexo8fr7p16yp9+vS39L0xcSoHAGDX9U7jxIlbNyux0znLl3t+vV6YSFKbNp75JQsW3PgY7yWxsbGqVq2adyG4xGTJkkX9+/dX7ty5491+4sQJ79e1lxrPmjVLGTJk0NChQ9WmTRu1b99ektS0aVN16dJFTZo0keQ5SjN16lQtWLAg3iXNqVOnlr+/v8qVKyeffxzu+uf313I4HDf+wm/QTYdJVFSUtm7dqi1btiT75gIA7m3XO40Tp0oVz69JhUnatNL//8M9WenTeybSLl8u/f+Ct6Y5nU7vyqjX28btduv06dNq1qyZ92jHta69/HbTpk3auXNnvO0+++wz79fZs2e9t/v4+GjKlCmaPn263n77bW3evFmRkZGKjIyUy+WKt5ZJSEhIvMXfDh8+rLp166pBgwaKiIhQt27dvKsP3w03dSpn4MCBGjRokHeJ5DRp0qhXr156N6mp2ACAe9KNnsaRpKxZpUcfTRgmkZHShg2eD+xL5O/iRDVo4FnzZOVK+5cOz5s3T++9916CtUtKlSrl/b3T6VSzZs301FNPqUKFCipcuLAaNWokX19fVa1aVXny5FHVqlXlcrmULl06LVmyRMOHD9eff/6pSpUqSfIsUHrtPJRixYopJiZG/v7+Wr16tb766iv5+vpqz549Wrt2rZo0aaIKFSpo8+bNCg0NVdeuXdWpUyfv46Ojo7Vv3z71799fH3/8sZo2bSqn06lPPvlErVq10k8//aQnnnhCFy5ckNPp1BdffKHIyEgtWLBAJ0+eVI0aNXTo0CGVKlVKH374oRo2bHhr3lB3Cg0bNswdGBjo7tu3r3vNmjXuNWvWuD/44AN36tSp3Z9++mlKd3fTHnjggTv2XADwv2rgQLdbcrsXLryx7du392x/+PB/b1u82HPbsGE3/ry7d3se06FD/NtjY2PdO3fudMfGxt74zoyJjo6+5ftct26de9euXd7v9+3b5/7111+93589e9a9f//+RB8bExNzy8fjdt/8zyrFR0w+++wzDRw4MN4s3KpVqyp9+vQaPnz4LZ+dCwC4e77//sZO48R57DHp88+lsDApbgXzuM/AvJH5JXEeecSzpsnChZ6VYG/DVIa7JrFTOP/WPz/89uGHH473febMmZU5c+ZEH3srPx/nVkjxHJMzZ86o+D+nW8tzSCnuUywBAPe+U6c8y8zXq3f90zhx4tYoufZ0zvLlntM8ifzVkawGDaS//5b+/wOsJf13sqX77q8NiuuI+xmldIJsijOpWrVqGjBggCpUqOC9RCg8PFyDBg1S9aTWIQYA3HPirqSpXfvGH/PQQ1LOnP8NkzNnPB/89+yzCdc2uZ769aXPPvMcNSlRwnObj4+P/P39dfbsWWXJkuW2XBWCfy8mJkYnT55UYGBgslf1JCbFYTJq1ChVr15d+fPnV+nSpSVJ27ZtU0BAgH7++eeU7g4AYNRPP3l+TUmYOByeoyZz5kgXL3omr0opO40Tp3p1z5U8CxZIvXr99/Z8+fLp8OHDOnfuXMp3ijvC4XAoY8aM3mX5UyLFYfLII4/o999/15gxY7Rlyxa53W7vTN+bGQAAwB63W1q6VAoOlpJYNDRJVatK333nuRIn7qjLjc5RuVaqVFKdOtJ//uM58vL/HxGjVKlSqWDBgnK5XJzSMcjhcHi/bsZNzXjJnj37LV8bHwBgx65d0tGjUpcuKX/stQutLV8uPfig5xTPzWjQwHP05ccfpdat49+X0lMEuDfwUwUAJLB0qefXlJzGiVOqlOczbr75xrMOys2cxokTGur5deHCm98H7i2ECQAggaVLPcvCh4Sk/LF+flKlStLevZ7v/02Y5Mzp+eTiH3+UrlmBHfcxwgQAEE90tGfSauXKng/Vuxlxlw1L0hNP/Lvx1K8vXbjg+YBA3P+uGya+vr7aunXrfx/g4yNfX98kvwAA97YNGzzLyN/MaZw4cfNMihWTcuT4d+OJW5Ke0zn/G647+XXFihUqXLiw9/uVcdd+AQDuS/9mfkmcypWlXLmkli3//XjKlPGc0lmwQPr443+/P9jmcN+j11rlyZNHR44cudvDAID7TqVK0u7d0unTnvki/8atWk7+pZekKVOkAwekAgX+/f5gF3NMAABe589LmzZ55oXcio9QuVULszZo4PmV0zn3P8IEAOC1YoXkcv270zi3Q61akr8/YfK/4JaFyenTp3Xy5MlbtTsAwF1wK+aX3A7p0nkuXV650jMxF/evFIfJiy++qMOHDye4/bvvvlPVa68PAwDcc5Yu9azS+vDDd3skCdWvL129+t9l7nF/SnGYTJs2TWfOnElwe+nSpRMNFgDAvWH/fs/kUmtHS+LEXTa8YMHdHQdur5s6lfPPD+ZxuVxasWKFHnzwwVsxJgDAXWD1NE6cggWlwoU980zuzetJcSNuKEw+/PBD78JqDodD5cqVi7eomr+/v4YMGaLhw4ff7vECAG6TpUslH59/v1Lr7VS/vnTsmLRt290eCW6XG1rH5K+//tKhQ4fkdrv1xBNPaPz48fEWXQsMDFSRIkWU7mbXLr4JrGMCALeO0yllzeo5IrFhw90eTdJWrvSEU//+0nvv3e3R4Ha4oavU8+fPr/z583u/L1eunMqUKXPbBgUAuLM2b/Z8Ho3V0zhxqlb1XKGzbBlhcr9K8RyTvn37Knfu3LdjLACAu8T6/JI4/v6euSZ//XW3R4Lb5ZYuSe9yueTjc2fWbONUDgDcOtWrS1u3SufOSalS3e3RJK9BA09IRUXdupVlYcdNLTj81Vdfaf369bp8+bL3ttjYWG3cuFG7d+++ZYMDANx+ly5J69dL9erZjxJJeuABKTpaOnvWMy8G95cUH97o1auXOnTooA0bNujLL7+U2+3W7t279dVXX6lWrVq3Y4wAgNto9WopNtb+aZw4Dzzg+fXo0bs7DtweKQ6TL7/8Up9//rnWrl2rgIAAde/eXWFhYapbt66cTuftGCMA4Da6V+aXxImb5njs2N0dB26PFIfJxYsXlTdvXgUGBqpcuXLatGmTJKlz5876/vvvb/kAAQC319KlnqMQwcF3eyQ3hiMm97cUh0mZMmU0bNgwnT17VjVq1ND8+fMlSZGRkYqJibnlAwQA3D5//CH9+adUp869M5E07ogJYXJ/SvHk16FDhyo0NFTz5s1T27ZtVaxYMT300EM6fvy4mjRpcjvGCAC4DebPl1q39qz2+txzd3s0Ny7uiAmncu5PKQ6T8uXL69ChQ7p8+bKyZ8+uNWvWaObMmcqaNau6det2G4YIALiVXC7pww+lfv2kLFmkJUukmjXv9qhuXJYsnquHOGJyf7ql65jcSaxjAgApd+GC5yjJwoVS6dLSnDnSvfj5qwUKSJkyedZewf3lzqyGBgC467Zvl8qV80RJ27ZSWNi9GSWS53QOR0zuTykOk/r162vevHm3YywAgNvk22+lihU9S7mPGiVNmyalTn23R3XzcueWTp3yLLSG+0uKw+Ts2bP67bffbsdYAAC3wZQpUvPmng+/W7FC6tz53rkCJylxE2BPnLi745A8R6KKF5cqV/bM17k3J0jYkeIweffddzVhwgQdOnToNgwHAHCr/fCD5OsrbdkiVat2t0dza1hZy2TWLM+RqF27PPNd6tXzfO7QqlV3d1z3shSHScaMGdWoUSNVqFBBw4YN088//xzvCwBgy6lTUvbs//3L/H5wt1d/jYmRunWTWrWS0qeXVq6U9u6V2reXNmyQHn/cc6XTunV3Z3z3shRflZPcpwc7HI47tiw9V+UAwI15+GHPaZxt2+72SG6d1aulkBBpxAipa9c7+9zHj0vNmnkmD1erJn3zjZQr13/vP3DAcyn2l196Ls2uV0/66COpbNk7O857VYqPmLhcriS/+KwcALAn7ojJ/eRurf7688+ey6zDwqTu3aXly+NHiSQ99JBncvHOnVLLlp55J9WrS6dP39mx3qu4XBgA7mOXL0sREVKOHHd7JLfWnV791eWShg+XnnjC835+84306aeSv3/SjylcWJo5UxowwPNz2LXrzoz1XkeYAMB97NQpz6/32xGTNGmkjBlv/xGTixc9p4sKF5beeEMqWFD65Rfp2WdvfB+FC3t+5ZqRG0OYAMB97H4NE8lzOud2HTHZvVvq0kXKk8czyfX8ealXL0+UFCmSsn3lz+/59a+/bvkw70sp/qwcAMC9Iy5M7rdTOZLndM769bdufy6X9OOP0siRnnkhklSypPT661KLFje/IF3c6rqEyY0hTADgPnbypOfX+/WISUSEFB7uuWT333rzTc+8ER8fqWlTz9U+Vav++8XoMmeWgoI4lXOjCBMAuI/dz6dyrp0AeyvCZOFCz6mbsDApX75/v784DofndM69dMRk61bP1Ud3Y4Vg5pgAwH3sfj+VI92aCbAxMdL+/VKZMrc2SuI8+KB0+LDndJF1GzZI5ct75tTcDYQJANzH4k7lZMt2d8dxO9zK1V/375diY6Xg4H+/r8Tkzy9dvfrfn4dVly9Lzz/vuQy6TZu7MwbCBADuY6dOeU5zBAbe7ZHcerfyiEncGiO3M0wk+6dz3n1X2rNH6t9fKlr07oyBMAGA+9ipU/fnaRzp1q7+ervD5F64MmfVKs+aLVWqeNZsuVtuKkymTp2qxx9/XHnz5tXOnTvVpUsXde/eXbGxsbd6fACAf+Hkyftz4qvkCS4fn1tzKufPPz2/3u4jJlavzLl0SXrhBc8l0dOmeT6N+m5JcZiMGDFCr7zyijL/X3t3HhZluf4B/AuIIIoiYiIqgqi5gSgqIiqo5J6m7VZqdjqn0rJs32051WnRbDmmeSzLLK2sfq0iKIvigrghiiuuBIqKiIAs8/z+uJ0BVJaBmXlnhu/nurhGhpn3vUFe5p7nuZ/78fREZmYmSktLMWTIECxfvhyvvPKKOWIkIqI6KCsDcnLsNzFp1Ajw9jbdiEmbNkDLlvU/1vVY+1TO009L0vTuu0CXLtrGYnRi8tFHH2H+/Pn48ccfod+Y+I477sBHH32Er7/+2uQBEhFR3Zw7J6tA7HUqB5DpnPomJkpJYmKu0RJA/g9cXKwzMVmzBli0CBg2DHjkEa2jqUNikpWVhd69e19zf5s2bXDu3LlaHaOkpARjx45FXFwcAGDRokXo2bMnIiMjERkZiUOHDhkbFhERXcWem6vptWsH/P13/ZbhZmVJkzZzJiaOjrIM2ZJTOY88Avzzn7LiqCq5ucADDwDu7sDSpRKn1owOISwsDAsWLDDUkzg4OKCkpASffPIJwsLCanx+cXExJkyYgBMnThjuS0xMxMqVKxEXF4e4uDh07tzZ2LCIiOgq9txcTc/HR6as9N9rXegLX7t3N01MVdE3Wbsy2WBWx48DCxcCn38umwhOmyarba42e7aMOM2bV16gqzWjE5N58+YhPj4e7du3BwD885//hJ+fH+Lj4/HBBx/U6hhLlixBSEiI4fPExEQ89NBDCA0NxezZs40NiYiIrkM/YmLPUzkVu7/WlbkLX/X8/IBLl2SKzdw2bJDb2bOBiAjgq68k8br33vLv95df5P4xY2TUxFoYnZgEBQVh//79ePjhhzF58mS0a9cODz74IA4cOHDdKZ6rNW7cGO30v0mQaZ33338fGzZswObNm5GWlob4+HhjwyIioqs0hBETU/QyMfdSYT1LrsypmJjExgKJiUBUFPDNN9Kf5M47ZZrHwwNYskSb1vNVMXqvHJ1Oh4yMDAwbNgzDhg0z3J+WlgYAGDp0qFHHc3Z2xvjx4wHItFBgYCDS0tIQERFR6XHz5s3DvHnzDJ/n5eVhzZXtH1u0aIGBAwdi8+bNuHDhAgAgICAAvr6+WL9+veE5oaGhKCgoQGpqquHcw4cPx65du5CVlQUA8PHxQWBgIGJjYw3TVUFBQXB1dcXWrVsNxxo+fDgyMjKQkZEBAPDw8EBoaCiSkpJw8eJFAECXLl3g4+NTKdEKCwtDXl6e4efl4uKCyMhI7Ny5E9lX3t60b98ePXv2RExMDMrKygAAwcHBcHZ2RnJysuFYUVFROHToEI5e+S339PRE//79sXHjRuTn5wMAunbtCm9vbyQkJBieN2jQIJw/fx77rqTNrq6uiIiIwPbt23HmzBkAQIcOHdCjRw9ER0cbipz79OkDR0dHpKSkGI41cuRIpKen4/jx4wAALy8vhISEIDExEQUFBQCAbt26wcvLCxv0VwqAwYMHIycnB+lX/iK4ublhyJAhSElJQU5ODgDA19cX3bp1Q3R0tOF5ISEh0Ol02LFjBwD5nRk5ciT27t1rmB5s3bo1+vbti/j4eBQVFQEAunfvjpYtWyIpKclwrKFDhyIrKwsHroxvNmvWDOHh4UhOTjbUS/n5+aFz586IiYkxPK9///4oKSnBzp07AQBOTk6IiopCWloaTp48CUBqroKDgxEXF4fLly8DAHr27InmzZtjU4XtUCMiIpCZmYmDBw8CANzd3TFo0CBs2bIFubm5AAB/f3/4+/tj3bp1hucNGDAARUVF2L17NwCgUaNGGDFiBFJTU5F55a2jt7c3evfujXXr1qGkpAQAEBgYCDc3N2zZssVwrGHDhuH48eM4fGUimtfTUQD2cT3t2vU3gLY4cGADWrduZZfXU2bmAQD9sHZtGm66KaBO11Nq6nC4ujbC3r3RSE835/XkBiAImzf/jcDAVma9nmJjdWjVSmH//nicPu2BwYND8eqrSRgzxhErVgRg1SppBfzMM7uRmvo3UlMtdz2Fh4ejWspIo0aNUg4ODtf9cHR0rPVxpk2bptavX6/27NmjoqKiVFlZmcrLy1PdunVTmzZtqvH57dq1MzZ0IqIG5YEHlAKUOndO60jMZ88e+R5ffrnux+jQQangYNPFVJWEBIl13jzznufcOaUcHJS6886qH5OcrNTKlUrpdOaNpS6MnsrZuHEjVqxYAZ1Od82HPnsyRs+ePTF48GB069YNgwcPxqxZszBw4ECjj0NERJWdPi29Pjw8tI7EfOrb/TU/HzhxwvyFr4DlpnKSkqTAdvDgqh/Trx9wxx3WNYWjZ/RUzjPPPIPVq1dj2LBhaFOPiqovv/zS8O9XX30Vr776ap2PRURE1zp9WupLrPHFx1Q8PKRbaV2LX/fvl1tz15cAkkQ5OZm/l0liotwOGWLe85iL0SMmZ8+exQ8//AAfHx84OTld80FERNYhO9u+V+QAknS1a1f3ERNLFb4CMnrVoYP5E5MNG2Tjxl69zHseczF6xOTzzz/Hs88+i1GjRsHBntNwIiIbd/q09LCwdz4+wJ49dXuuJRMTQKZzdu0y3/GLioDkZGD4cG33u6kPoxOTu+++G+7u7oiMjDRDOEREZAqXLgEFBfY/YgLIiElCgrwou7oa99z0dBl1sdT+MH5+QHy8dJpt3tz0x09OBoqLbXcaB6hDYrJ//3588cUX+Oqrr+CjrzqqoOISLCIi0kZDaEevp38pyswEOnUy7rnp6YC/v9SpWELFzfwCA01/fP0q8uoKX62d0YlJVFQUoqKizBELERGZSENorqZXsfurMYlJaam0abfkS1rFlTnmSEwSE4HGjYEBA0x/bEsxOjHRr55JTExEcnIylFLo37+/0Y3ViIjIfPSJSUOZygGML4A9elSmPSxVXwKU70djjgLYsjJZKtyvn/FTWtbE6MTk0qVLmDRpEmJjY9GokTy9tLQUUVFR+Omnn+Dm5mbyIImIyDgNcSrH2MTE0oWvQOWpHFNLSwMuXLDtaRygDsuF58yZg/T0dMTGxqKwsBCFhYVYt24d9u/fjyeffNIcMRIRkZEa6lSOMSy1q3BFHTpIsa05mqzZev8SPaMTk++//x7z5s1DZGQkHB0d4ejoiIiICLz33ntYuXKlOWIkIiIjNaSpnLZt5dYWRkwaN5YRHnOMmOgLXwcNMv2xLcnoxEQpdd3+JexpQkRkPfRTOa1baxuHJbi6Aq1aGT9ism+fPM/LyzxxVaVjR9MnJkrJiEmvXoCnp2mPbWlGJya33XYb5syZg/j4eMMeOfHx8Xj66adx++23myNGIiIy0unT0q69cWOtI7EMHx/jRkyUksTEkqMleh07yv/PlQ2jTeLYMfn+bb2+BKhDYjJ//nx06tQJw4YNg6urK1xdXTF8+HD4+/tj3rx55oiRiIiMdPp0w5jG0dO3pVeqdo/PyQHOn9cmMdGvzDl+3HTH1E/j2Hp9CVCHVTnNmjXD+vXrsX79eqSkpBiWC7MTLBGR9cjOtmxRp9batZPOr7m5QMuWNT9ei8JXvYorc0yVGOkLX+1hxMToxERv2LBhGDZsmCljISIiEygtBc6ebRgrcvQqLhk2JjHRaioHMO3KnA0bZMWPr6/pjqkVo6dyAOCrr77Chx9+CABITk5G//798b///c+UcRERUR2dPStTGg1tKgeofQHsvn1yq+VUjqkKYM+eBfbutY9pHKAOicnHH3+Mf/zjHzh37hwAoE2bNujRowdmzZqFRYsWmTxAIiIyTkNqrqZnbJO19HTAxaU8SbAk/aiGqRKTjRvl1h6mcYA6JCYfffQRPvjgA7z++usAAF9fXyxbtgzvvvuuYRSFiIi005Caq+kZ25Y+PR3o2hVwcjJfTFVxc5Nl3KaayrGnwlegDonJqVOnEBQUdM39gYGBOGaOjjFERGSUhtRcTc+YqZzCQkkKtJjG0fPzM92ISWKiLA3v0cM0x9Oa0YlJ79698fnnn0NVWJOllMLixYvRu3dvkwZHRETGa4hTOa1bA40a1W7E5OBBqcHRMjHp2FGSqOLi+h2noABISQHCwwHHOlWNWh+jV+V88MEHiIqKQkpKCsLCwgAAmzZtwrFjx7B27VqTB0hERMZpiFM5jo7Smr42iYmWha96fn6SHJ04AQQE1P04W7cCJSX2M40D1GHEZNCgQdi0aRNCQkKwZcsWbN68GX379kVSUhLCw8PNESMRERmhIU7lAFIAW5upHC2XCuuZapdhfX2JvRS+AnXsY9K7d28sX77c1LEQEZEJZGdLK/rmzbWOxLLatQOSk6WPS6NqXt30icmNN1omrusxZWLi4gL061f/mKxFnRKTP/74A7t27UJJSck1X3vllVfqHRQREdXd6dMyjdPQ9lZt1w7Q6SQx0xfDXk96uizZbdrUcrFdTb9MuT4rc8rKgKQkYMAASU7shdGJyWOPPYZPP/0U3bt3R+urtq10cHBgYkJEpLGGtk+OXsVeJlUlJjodsH+/9jUZphgx2b0buHjRvqZxgDokJsuXL8dbb72FZ5991hzxEBFRPSglIwb2snTUGLXpZXL8uCwX1rK+BJBpNg+PuicmSgFvvy3/jooyWVhWwejiVxcXl+v2MSEiIu3l58tmdg1pRY6efsSkugJYayh81fPzq/tUzrffAt9/D0yeDNjbtnVGJyazZ8/GG2+8gcLCQnPEQ0RE9dBQV+QAtRsx0XJX4at17AicPCm1IsY4eRKYOVP+jxctsr9aIqOnctq2bYvCwkJ06dIF06dPR0BAAJwq9PSdOnWqSQMkIqLaa4jN1fRq0/3VmkZMOnaUFUSZmbIzcG3odMD99wO5ucBvvwFeXmYNURNGJyZz584FADg7O+Obb76p9DUHBwcmJkREGmqIzdX03N2BZs2qHzHZtw9o0cI6RpQqrsypbWLy6adATAzw4IPAuHHmikxbRicmGRkZ5oiDiIhMoCFP5QAyalLTVE63btYx/VFxZU5tVgmlpwPPPAN06gTMm2fe2LRUpz4mRERknRryVA4gBbDbt5d/XlYG7NoFrFsnH6dPA2PGaBdfRcYsGS4pAe67T/bW+eorGRmyV0xMiIjsSEOeygFkxGT9ehlRSEwE4uKkHgMAnJ1lZOKRR7SMsJwxTdb+/W9g2zbguedkwz57xsSEiMiO6BOTq/pfNhj6Wo0nn5SN/fr3B4YPl49BgwA3N23jq8jTU7rP1jRisnUr8OabQO/ewGuvWSY2LdWYmMyYMQNz586Fr6+v4fPqLF261DSRERGR0bKz5QXP2VnrSLTx8MNAkyZAnz4yOtKihdYRVc3BQaZzqktMCgpkCsfJCVi+XPZAsnc1JiZKqWo/JyIi66HfJ6eh6tABePllraOoPT8/IDZWlgE7XtVZ7ORJYNYs4MAB4L33gF69NAnR4mpMTL744otqPyciIuuRnQ0EBmodBdVWx47A5cuSUHp7y33nzwPvvAN89JF08Z00CXjiCW3jtCSjO78SEZF1KikBzp1r2CMmtqbiypzCQhkZ6dQJePddoGtX4M8/gR9/lKmchoLFr0REdiInR26ZmNgO/cqcjz8G4uNl+qZjR/l8ypRrp3caAiYmRER2Qt/DpKE2V7NF+hGTb74BWrUC5s+XAl4XF23j0hITEyIiO9HQe5jYouBgqSHp2RN46inrXkVkKUxMiIjsBBMT2+PqCqxerXUU1qUBzl4REdknTuWQPWBiQkRkJzhiQvaAiQkRkZ1gYkL2gIkJEZGdyM6WmgV3d60jIao7JiZERHZC347ewUHrSIjqjokJEZGdaOj75JB9YGJCRGQHlJKpHK7IIVvHxISIyA7k5QHFxRwxIdvHxISIyA5wRQ7ZCyYmRER2gM3VyF4wMSEisgMcMSF7wcSEiMgOMDEhe8HEhIjIDnAqh+wFExMiIjvAEROyF0xMiIjswOnT0vHVy0vrSIjqh4kJEZEdyM4GWrUCGjXSOhKi+mFiQkRkB9iOnuwFExMiIjvAxITsBRMTIiIbV1AAnD/PFTlkHzRJTEpKSjB27FjExcUBAA4cOIABAwZg0KBBWLx4sRYhERHZrKQkuQ0J0TYOIlOweGJSXFyMCRMm4MSJE4b77rvvPrzzzjvYuHEjVq1ahePHj1s6LCIim3XlPR4iI7WMgsg0NBkxWbJkCUKupPa5ubk4deoUhg8fDgcHB4wcOdIwkkJERDVbvx5o3hzo00frSIjqz+ILyxo3box27doZPr948SJ8fX0Nn3t4eCAzM/Oa582bNw/z5s0zfJ6Xl4c1a9YAAFq0aIGBAwdi8+bNuHDhAgAgICAAvr6+WL9+veE5oaGhKCgoQGpqKgDA2dkZw4cPx65du5CVlQUA8PHxQWBgIGJjY1FaWgoACAoKgqurK7Zu3Wo41vDhw5GRkYGMjAxD3KGhoUhKSsLFixcBAF26dIGPjw/i4+MNzwsLC0NeXh7S0tIAAC4uLoiMjMTOnTuRfaV1Y/v27dGzZ0/ExMSgrKwMABAcHAxnZ2ckJycbjhUVFYVDhw7h6NGjAABPT0/0798fGzduRH5+PgCga9eu8Pb2RkJCguF5gwYNwvnz57Fv3z4AgKurKyIiIrB9+3acOXMGANChQwf06NED0dHRUEoBAPr06QNHR0ekpKQYjjVy5Eikp6cbRrm8vLwQEhKCxMREFBQUAAC6desGLy8vbNiwwfC8wYMHIycnB+np6QAANzc3DBkyBCkpKcjJyQEA+Pr6olu3boiOjjY8LyQkBDqdDjt27AAAQzK7d+9ewyhc69at0bdvX8THx6OoqAgA0L17d7Rs2RJJ+jFvAEOHDkVWVhYOHDgAAGjWrBnCw8ORnJyMc+fOAQD8/PzQuXNnxMTEGJ7Xv39/lJSUYOfOnQAAJycnREVFIS0tDSdPngQAtGnTBsHBwYiLi8Ply5cBAD179kTz5s2xadMmw7EiIiKQmZmJgwcPAgDc3d0xaNAgbNmyBbm5uQAAf39/+Pv7Y926dYbnDRgwAEVFRdi9ezcAoFGjRhgxYgRSU1MN14+3tzd69+6NdevWoaSkBAAQGBgINzc3bNmyxXCsYcOG4fjx4zh8+DAAXk+2dj0VFTlh69YRiIgoRGxsIgBeT7yerPt6Cg8PR3UclP4qsbDp06dj+vTp6NOnD4YOHYpdu3YBAP773//iwoULeP7556t9fvv27Q2/tEREDVV0NDBqFPD++8CTT2odDVH9ab4qp0WLFgBgyAg3btwIf39/LUMiIrIZ+jfdw4ZpGweRqVhFj8Cnn34aN998M8LCwrBt2zYsWrRI65CIiGxCXBzg4QH07q11JESmodlUztV2796N1NRUjBs3Dh4eHjU+nlM5RNTQXbwItGwJjBsH/PKL1tEQmYZVjJgAUsATFBSkdRhERDZjwwagrIzTOGRfNK8xISKiumH/ErJHTEyIiGzU+vWApyfAwWayJ0xMiIhsUF4ekJICREQAjvxLTnaEv85ERDYoMRHQ6TiNQ/aHiQkRkQ1i/xKyV0xMiIhsUFwc4OUF9OypdSREpsXEhIjIxuTmAjt2sL6E7BN/pYmIbExCgtSX1Hoap6QEuLKRHpG1Y2JCRGRjjO5f8txzQEAAcPq0mSIiMh0mJkRENmb9euCGG4AePWr5hD17ZP7nk0/MGRaRSTAxISKyIefOAbt2yWiJg0Mtn5SdLbeffgpcumSu0IhMgokJEZENSUgAlDKyf0lWltyeOwd88YU5wiIyGSYmREQ2xOj+JWVlwJkzwKhRsr74gw+A0lKzxUdUX0xMiIhsSFwc4O0N3HhjLZ+QkyNLeDp1AmbNAo4eBX780YwREtUPExMiIhuRkwPs3m1kfYl+GqdNG2DmTKBJE+C992Q+qL4uXwY2b67/cYgqYGJCRGQjEhLk1qg29PrCV29vmcq5/37Z/U+/5riulAKmTQPCwoDt2+t3LKIKmJgQEdkIfX1JnQpfvb3lds4caRf73nv1C2bpUmDlSvk3R03IhJiYEBHZiPXrAR8foEsXI55UcSoHkEZrkycDf/4JpKbWLZC9e4FHHy1PdjhiQibExISIyAacPg2kpck0Tq3rS4DKUzl6Tz8tt++/b3wghYXAXXcBxcXADz8AbdvKxj1EJsLEhIjIBsTHy61R0zjAtSMmADBggOwAuGIFcPKkccd78kkZaXntNSA8HOjbVz4vLjYyMKLrY2JCRGQD6pWYNG8uq3Eqevpp6WeyYEHtj7V6NbBwoQzbPPec3Ne3r2wSmJZmZGBE18fEhIjIBiQkSH1JQICRT8zOrjyNozdmjGy2s2gRcOFCzcc5dgx44AFZ2bN8OeDkJPf36SO3nM4hE2FiQkRk5c6dk9mSoUONrC8BZMTkeomJoyPw1FPAxYuSnFSntBSYMkU2Aly2TDIkvb595ZYFsGQiTEyIiKzchg1yO3SokU8sKQHOnq1cX1LRlClSvLpgQfU1InPnAklJstR47NjKX/P1BTw9mZiQyTTSOgAiIqqevr7E6MTk9Gm5vd6ICQC4uACzZ0u9iKcn0L69fHToUP7v0lLgrbeAkBDg7bevPYaDg0znbNok+/Lop3iI6oiJCRGRlUtIkNKOHj2MfOL1VuRc7dFHpdf9rl2yQmfLFiA2tvJjmjUDvvsOaNz4+sfo21eec+AA0L27kUESVcbEhIjIil28KLMkEyfWsb4EqHrEBADc3K7tApuXJ0mK/iMoCOjcuepjVKwzYWJC9cTEhIjIiiUlyebARk/jANdvrlYbzZvL8Exth2gqJib33GPcuYiuwuJXIiIrpq8viYiow5NrM5VjCp07y3QPlwyTCTAxISKyYgkJMoARFFSHJ9d1xMRYjo5AcLCMmChl3nOR3WNiQkRkpQoLga1bgcGD67jYRT9icsMNJo3ruvr2lUZtGRnmPxfZNSYmRERWassWaUVSp/oSQBITT8+qV9OYEjvAkokwMSEislL1qi8Bqm5Hbw7sAEsmwsSEiMhKJSTIal79a77RqmpHbw7du0vDNiYmVE9MTIiIrFBxsTRTDQur40xMUZHUfJh7RY6es7NU6LIAluqJiQkRkRXatk2KX+tcX2KpFTkV9ekjbfD//tty5yS7w8SEiMgKJSTIbZ3rSyzVw6Qi1pmQCTAxISKyQgkJMoUzYEAdD1CbdvSmxsSETICJCRGRlSkrAzZskKSkSZM6HkSLqZzAQGm4wiXDVA9MTIiIrMzOnbJ5X52ncQBtpnJcXWV/HY6YUD0wMSEisjL6+pI6F74C2oyYADKdc/w4cPasZc9LdoOJCRGRlUlIkBmRsLB6HCQrS/awad3aZHHVir7OhNM5VEdMTIiIrIhOByQmyuu7u3s9DpSVBXh51XGTnXrQt6bndA7VERMTIiIrsnevzILUq74EsGw7+oqCg+WWiQnVERMTIiIrYpL6EsCy7egrcncHunblVA7VGRMTIiIrkpAAODgAgwfX4yD5+cClS5ZdkVNR377AgQNAXp425yebxsSEiMhKKCWJSVAQ0LJlPQ6k1YocPX2dya5d2pyfbBoTEyIiK3HokGwzY5JpHEC7xIQdYKkemJgQEVkJk9aXANpN5ehHTFhnQnXAxISIyEroE5MhQ+p5IK2nclq1Anx9OWJCdcLEhIjICpSUAH/9JR3d6z3QofWICSDTOXv3AoWF2sVANomJCRGRFfjjD+D0aeCee0xwMK1HTABJTMrKgD17tIuBbBITEyIiK/DFF9JBfupUExwsKwto1Ajw9DTBwepIXwC7YYMsNyKqJQelbPM3pn379jh58qTWYRAR1Vt2NtCuHXDTTcCff5rggKGhwMmTwKlTJjhYHf39N+DjI/9u1QoICZGPfv3k1tdXGrYQXaWR1gEQETV0y5fLrMeMGSY6oFbt6Ctq2xb45RcgOhpISZHK3ujo8q+3agVMngwsXqxdjGSVOGJCRKQhpYBevWT2JTMTcHExwQGbNAFGjAB+/90kMZpESQmwb58kKdu2ydBQRoZ8+PlpHV25kpK6P7dRI44CmQBHTIiINJScLItXZs0yQVICABcuAJcva7si53qcnaWlbVAQcP/9wLffAlOmAHFxwPTpWkcn5swB5s+v+/MbN5afe5s2MmJV8d+9egHDhpkuVjvGxISISENffCG3Jp3GAbSfyqmJfvvk+HjrSUx+/VUKhkePNv65SsneQNnZ8rFr17WjL0ePAh07miRUe2Y1iUnnzp3Rvn17AMDgwYPx5ptvahwREZF5FRbKwEHv3uXNUutN63b0teXjA3TpIomJNbh0CTh8GLjtNuCbb+p/PKWA3FxJUr78EvjPf4D0dCYmtWAVicmhQ4cQHByMH374QetQiIgs5qefZObFZKMlgHU0V6utiAhgyRLg+HFZpaOlvXslmQgMNM3xHBxkJ8aWLYHhwyUxOXzYNMe2c1bRxyQ+Ph5bt27F0KFDER4ejpSUFK1DIiIyu6VLpfRiyhQTHtRWpnKAytM5Wtu9W26Dgkx/7IAAuWViUitWMWISFBSEmJgYdO3aFQkJCXjqqaewfv36So+ZN28e5s2bZ/g8Ly8Pa9asAQC0aNECAwcOxObNm3HhwgUAQEBAAHx9fSsdJzQ0FAUFBUhNTQUAODs7Y/jw4di1axeyrrzL8PHxQWBgIGJjY1FaWmqIz9XVFVu3bjUca/jw4cjIyEBGRgYAwMPDA6GhoUhKSsLFixcBAF26dIGPjw/iK1x0YWFhyMvLQ1paGgDAxcUFkZGR2LlzJ7Kv/EFp3749evbsiZiYGJSVlQEAgoOD4ezsjOTkZMOxoqKicOjQIRw9ehQA4Onpif79+2Pjxo3Iz88HAHTt2hXe3t5I0G/CAWDQoEE4f/489u3bBwBwdXVFREQEtm/fjjNnzgAAOnTogB49eiA6Ohr6hVt9+vSBo6NjpcRx5MiRSE9Px/HjxwEAXl5eCAkJQWJiIgoKCgAA3bp1g5eXFzZs2GB43uDBg5GTk4P09HQAgJubG4YMGYKUlBTk5OQAAHx9fdGtWzdEV1hiGBISAp1Ohx1XNgdzcHDAyJEjsXfvXpw4cQIA0Lp1a/Tt2xfx8fEoKioCAHTv3h0tW7ZEUlKS4VhDhw5FVlYWDhw4AABo1qwZwsPDkZycjHPnzgEA/Pz80LlzZ8TExBie179/f5SUlGDnzp0AACcnJ0RFRSEtLc2wUqxNmzYIDg5GXFwcLl++DADo2bMnmjdvjk2bNhmOFRERgczMTBw8eBAA4O7ujkGDBmHLli3Izc0FAPj7+8Pf3x/r1q0zPG/AgAEoKirC7it/TBs1aoQRI0YgNTUVmZmZAABvb2/07t0b69atQ8mVue7AwEC4ublhy5YthmMNGzYMx48fx+ErfzR5PR0FYP7rqVWrEKxb1wrh4dlISdkFwDTXU5ekJHQCgDZtrP56cgUQAaDwr7+QcMMNALS7nhpv3oymABLOn0dJbKxpr6eQECgnJ5zetAk716xp8NdTeHg4qmMVy4ULCwvRpEkTAMCFCxfQpUsXnD59utrncLkwEdmy114D5s6VFb1jx5rwwA88IEMx588DHh4mPLCZBATItMehQ9rGMWIEsGWLFLA6mmEyISAAcHMDriQeVDWrmMqZOnWq4R3IypUr0VffypiIyA7pdFIP2bYtMHKkiQ+elSXrjlu0MPGBzSQiQqY4tOxSq5RM5QQGmicpAYDOnYEjR9ievxasIjF5++238fTTTyMwMBA///wzFi1apHVIRERmEx8vK0enTpWeXCaVlSWFr7bS6CsyUm61rDPJzgZyckxX+Ho9AQFAQUF5cTJVySpqTDp37lxpjo6IyJ4tXSq3999vhoPrN96xFfoC2Lg4E1cBG8Gcha96+gLYQ4dkqIyqZBUjJkREDcWFC8CPPwKDBgE33mjig+t01rFPjjE6dpSW9FqOmOjrPsw9YgJwZU4tMDEhIrKglSulsZpJe5fonTsHlJbaRg+TiiIigAMHZEdiLTAxsSpMTIiILOiLL2Rxxh13mOHgttTDpCKt+5ns3i3TX56e5jtHp05yy8SkRkxMiIgsZMsWYPNm6Xru7m6GE9hKO/qraVkAW1oqXV/NOVoCAE2byv8LE5MaMTEhIrKAwkIpdnV2Bp5+2kwnsaV29BX5+QEdOmiTmBw6JLsxmzsxAWTJMBOTGjExISIyQk4O8PLL0hjNGC+/DOzbB7z+OtCrl3lis9mpHAcHmc7Zt6/8e7AUS6zI0QsIAM6elc39qEpMTIiIaqG4GJg/XzbEffNNYNIk4KqdM6qUmAjMmwcMHAg89ZQZg7TVqRygfDqnQrt/i7BE4aseC2BrhYkJEVE1lAJ+/VVGOebMkdqQefOAJk0kOdm7t/rn5+cD06dLM9YvvzRDQ7WK9KMNtjaVA2hXALt7N+DkBHTrZv5zMTGpFSYmRERV2L0buOkmYMIEIDNTRkr27weeeEJ6kVy6JPvcVNfM89lnpRP5O++YoW/J1bKypMiyWTMzn8gMAgIAHx9ptGZJqamSlLi4mP9cTExqhYkJEdFV9uwB/vlPoE8fYN06KVo9eBB48UUZKQGAqCjg88+BY8eA8eNlZORqa9cC//2vDAY8+qgFAte3o7dFDg4ynZOWJoU8lnDxIpCRYZlpHICJSS0xMSEiu6XT1f6x+/dLYWrPnvI69fnnwODBwLZt0kL+el3Ep08HXnkFSEkB7r5bVp7qXbggTdSaNZPeJebaG64SW+v6ejX9dI6l6kz27JFbSxS+AkCrVrK5IhOTalnFXjlERKZ28CDQv7/UdHTtKh833lj+786dZYBh5Ur52LlTnteqFfCvfwF33SWvkzXthTd3rmzI99VXwOzZwCefyHOeeAI4eRJYtAjw9zfzNwsAZWXAmTNAeLgFTmYm+gLYuDhg8mTzn8+Sha+A/GIEBDAxqQETEyKyS889J6MWAwdKq4pNmyp/3cGhfAd6Dw+ZrrnzTmD4cOk1UlsODjK6cvKkTNv4+0sC9MUXwKhRwIMPmuxbqt6ZMzJEZKtTOYAsefL2tlwBrKUTE0ASkx07gKIiwNXVcue1IUxMiMjubNgArF4tb7p//FHuO39etmM5cECmbfbvlzrR224DRo4EGjeu+/kaN5bzDB4szdNatJCPJUtqHnExGVvtYVKRvp/JqlWy7485W8QDUt3cvDng62ve81QUECAZcUYG0L275c5rQ5iYEJFdUQp48kmZwnnnnfL7W7YEQkPlwxw8PKTp2sCBMkX01VdA+/bmOdd12XIPk4oiI2VuLSEBuOUW851HKRkxCQy0YPaIygWwTEyui8WvRGRXVq0Ctm4FHnlEZgYsqWNHaab27bfAvfda9tw2247+apbqZ5KZKcNolpzGAbgypxaYmBA1IGfOyJLXgwe1jsQ8Ll+W2pIWLaQFvBY6d5bCWUu+CQdgH1M5gPQUueEG8ycmlmxFXxETkxoxMSFqIAoLpVHYW28B/foB//d/Wkdkep98IitkXnwR8PLSOhoLs5epHH2dyc6dMqJhLloUvgIyv+fiwsSkGkxMiBoAnQ6YNg3YvFnezTduDEycKKMKZWVaR2caZ89KZ9aOHS3UzMza2MtUDiCJiVLmHTXRj5iYbUfFKjg6ytItJiZVYmJC1AC89BLw/feyAuWbb6QhWL9+8kI+bpwsgLB1b74pm7a+/XYDXYWZnS1zWPbwzY8bJyMnX3xhvnOkpspqHA8P852jKgEBsk+BvbwrMDEmJkR2bulSebEODZWVIo6O8vc4MRH4xz+ANWskSdmxQ+tI6+7QIeDTT6Wh2p13ah2NRmy5Hf3V/PwkOfntN5mbM7WSEmDfPstP4+gFBEgMJ09qc34rx8SEyI7FxkoXUz8/4Jdfyvd5AeSN9eefA4sXA6dOAYMGSeJii55/Xv7Of/CBhVq/WyNbb0d/tZkzZQ7ys89Mf+z9++UXxtKFr3osgK1WQ72Eiezevn3ArbcCbm7SX6OqN9MPPiijJ15eUoei1WqWukpKAn74AZg0CRgyROtoNKDTAR9/LEU2Pj5aR2M6I0fKEqclS6RLqilpVfiqx8SkWkxMiOzQ6dPA2LGy4+0PPwA9elT/+AEDpO5kwACp1YiJsUyc9VVVM7UG48gR6aH/2GNSUPn881pHZDqOjtKM5uxZaU5jSlonJp07yy0Tk+tiYkJkZwoLZcXN0aPAwoXATTfV7nk33AB8953shnv//VJIao303by//VZ27928GXj4YdmYr8HQ6eQ/NyhIVq488oisMtFqasJcpk+X+cdPPjHtcXfvlg2RbrzRtMetLT8/Ke5lYnJdTEyI7ERJiSQW4eHyYv3MM8ZvIOfvD3z4odTkPfaYWcI0Wn4+sH69FPBOnChlFJ06AVOmAF9+Ka8ttjb9VC/Hjsk0xyOPyFbIMTFS+dusmdaRmV7LltJCNzlZPkwlNVXawRuzW6MpubgAHTowMamCg1L6/TVtS/v27XGSFc1EyM2VItaPPwZOnJCi1pkzgXffrVshqFLSiO2332Qa6NZbTR5ytYqLgS1b5PU2Nlb+XVoqX2vUCOjdGwgLkz1pBg6UJMXiXVa1oBTwv/8Bc+YAFy9K1vn++7IJnT3btQsIDpYCqC+/rP/xcnMl4bnnHmD58vofr66GDwe2bZMtsBvEL3DtcRM/Iht15AiwYIG8Vl26JCMJb74pq3Dq0/XUwUESnV695Fjh4eZf7LFnD/DXX5KIJCbK9wMA7u7A6NHA0KGSjPTtK8W8DdL330sy0q6d/HvUKK0jsozeveWX8LvvJBGrb0vfPXvkVutpr4AAGQrMyQFat9Y2FivDxITIxmRnyzTL99/Lm+jevYEnnpCOri4upjmHtzewaJE0ZPvnP2Wpsbne1P35p7SsUEo60g4aBIwYIR/9+mk32m519F1QExJkmKghmTULuPtuycKffbZ+x9K68FWv4socJiaVsMaEqD4WLgQGDwbmzStvCW5GMTGSiKxaBYwZIyMMO3bIKLepkhK9W2+V6f1ffzVvA85PPpEpp99+k61R1q+XTrVhYUxKKklNlS6l/v5aR2J5kyfLeveFC+vfLVXfit6aEhNz0bd8tjFMTIjqKjdXtrLduFHWrLZrJ9nCihVAQYFJT1VSArzwgtQ8FhbKqPbvv8s0tTmnpz/+WL6t2bNlJYypZWbKFM6YMTJq0mCnaWqilLygBgY2zHqExo1l6O7YMfnFr4/UVKkxadfONLHVlbmXDKelAf/+t4w2Xb5snnOYCRMTorr65BMgL0/mPL7/Xl5ZY2KkqK5NG1nquG6dvKhcJT9f/m6cOlXzaY4dkz3N3n67vHV8nduuZ2ZKZeyRI7V6uIeHjJbk58u3o9PV8bxVWL5cjnn//aY9rt05eVKKJLWui9DSv/4FODnJCqS6UkoSE2tI8Mw9YrJihdyePg2sXm2ec5iLslHt2rXTOgRqyC5eVKpVK6X8/ZUqLi6///RppT7+WKn+/dVlOKtoRKlPB69QTz+lU7ffrlT//kp5eSklfyHl48YblXrkEaV+/FGps2crn+aHH5Ty8JDHPfWUUpcv1yNmnU6pcePkYAMHKlVaWuunzpolT3v/fTmMKeh0SnXrJj/Gen1fDcFvv8l/wGefaR2Jtm67TX4O+/cb/9wTJ5SaMEGeP2eO6WOrCy8vpcLDTX9cnU4pPz+l2rRRysXFPOcwIyYmRHXx/vtVvlDs3KnU7NlKebUsqZSAODjoVLt28jfinnuUeuEFpaZPV6pDh4qPUSokRKlnnlHqwQflPi8vpf74wwQxf/dd+QH1WUYtXbqkVNeu8jQXF6V8fJTq1UupiAilJk+WWF96SanMzNqHs3mzHO+xx4z/Vhqct9+WH1ZSktaRaGv9evk5zJ5d++eUlSn1ySdKubvLc+++W6lz58wVoXFCQyV5MLWkpPJ3M1Onyr937jT9ecyEiQmRsQoLlfL2llfnoiKllIx0fPyxUn37Vh4JeWvuZbU2aI46iABV9OhT1x1u0OmUOnBAqYUL5Q2hp2f5MYYPV+rUKRPEfPasUjfcIMMTx44p1bmzUq6uRr3z3LdPqRkzZNBl4EClunSRwzk4lMcbGVn7EZWHHpLnbN9ex++pIbn7bvlh5eVpHYm2dDqlevZUqkULpfLza378nj1KhYXJz87XV6nffzd7iEaZMkViu3jRtMfVD3Fu367Uli3y73/+07TnMCMmJkTG+vRTudDnz1eHDyt1++1KNW4sd7m7y+hBUlKFF+iLF5UaPFge8MwzNb5yl5XJ35M//jBqtqV6998v5//6a/k8IUEyivDwep+krEzyHv0bszVran5OQYG8tgQFmW5qyK716iXThqTUf/8rv2ivv67UwYOSrF39S1RUpNTLLyvl7Cy/57Nnm/7F3xReflm+l127THfMkhKlWreWeVKdTj5CQpRyc1MqN9d05zEjJiZExiguVqpjR5kOyc9XY8fK35Vhw5T66qtq3sTl5ZW/c3vxRcu+GsfEyHlHjap83scek/s//NAkpzl2TKZ5+vaVZKU6335ryO2oJpcvK9WokdRHkCQYzZtXLtRyc5PEbeBApW65pXzeMTBQRgys1bJlEufq1aY75l9/lSduekuXyn0LFpjuPGbExITIGF98IRf4v/+tSkqUatZMqaFDa/nc3FylBgyQ58+da84oy126pFRAgPzhPnKk8tfy85Xq1EmpJk3knacJPPGEfHurVlX/uJEj5bX29GmTnNa+7dolP9SXXtI6EuuRnKzUBx/ICOS0aUqNHq1UcLBSbdsq5eQkv9NvvVW5MN0abdgg/7fvvWe6Y+qHLite05cuKdWypcwv28AQJRMTotoqLZXCihYtlMrNNUzdvvKKEcc4f16GVa8kN2b3zDNyrg8+uP7X9cWEQ4fWPMxRC6dPy3RW164yonw9J07I6Pott9T7dA3D11/L/9HKlVpHYhvKyqw/IdH7+2/5v33oIdMc79Ilebc0YMC1X3vySTlXTIxpzmVG7GNCVFs//AAcPAg8+ijQogXi4uTuiAgjjuHhAURHy6ZkL74oW/may44dwAcfSPOTqrYKjoyUXWoTEoD//rfep2zdWnrNHThQ9X5rX38t4+/Tp9f7dA2DvoV6Q+5hYgxHR9tpGdymDdC0qel6mfz2mzQduueea7/20ENya4Lr3Ny4uzBRbeh0kkwcPiwdz7y8MHastIQ/f74OHUtzcoAhQ6TR2d695c2WTKW0FAgNlZ1ZU1Kkj31V8vNlx76cHHkRrGfL84sXZSsXV1dJUJo0Kf+aUsCNN0rT3FOnbOf1Q1Njxkif/vx82V6Z7EtQkPzf1rLpYbVuuUX2kDh16vo7b44ZA6xdCxw9CrRvX//zmQlHTIhq47ff5EX7oYcALy+UlsouuKGhdWyj7uUFfPYZUFwMPPOMycPFggXA9u3A009Xn5QAQLNm5VsUP/BAvdu7urvLYNDJk9e+Odu0SQad7r2XSUmtpaYCPXsyKbFXAQHA8eOy70R9nD8P/PGH7H5Z1XbgM2fKXkOLF9fvXGbGxISoJkoBb74pu+Q9+SQAec3Pz5eZkDqLiJCd8lavhmFeqD7KyqRt+fbtwMsvy14cr7xSu+eOGCF7kaxfD8yYAfznP7Jh2jffyDuw+Hg57pkztTrcQw8BHTpIG/0LF8rv128GyGmcWjp3Tt79ar3hHJlPQIBcu8eO1e84P/4oyc2UKVU/ZswYoGNHSUyKi+t3PjNiYmLjMjJMMwJojJIS2Sbm0CHLnlczMTFAcrK8YPv4ACjfgd6o+pLrefdd2aDs8cdrv2uqfmQjNBTo3l02I3N3l3fUHh5ASIjs9Ld4ceV5lJq89x7QtSuwbJlsTvjIIzK0MWGCZGAhIXKuX36p8VCursDcucDZs1LmAsi+hitXAn37slyi1lhfYv9MtZnfihXy5mnSpKof4+QEPPwwkJ0N/PRT/c5nRkxMLEQpmfY3hdJSeW0YNUrm8vv0kd8zS3nzTan/HDQI2LnTcufVzL//LRd0hSmXuDiZiggLq+exO3UC5syRWhD9cEJ1lJId75YuBU6ckLg6dgTCw4Hbb5eE5Ykn5N3TsGHGxdK8uexgu3+/JGKxsfLHa9ky2Wb4zTcl8bnjDpmnrsHUqUC3bsC8ebKP2E8/Sf0JR0uMsHu33HLExH6ZYjO/U6fkj9LNNwMtWlT/2Bkz5M1QfTZDNDetlwXVlS0tF750Sfr+ANK7wd1dGvP5+sqy8uBgadA1Z440njp06PpLzf/+W6k33yzfW8XJSakhQyzbbTg5Wc7r7y/NtFq0UGrjRsucWxOHDskP+J57DHeVlMj/4eDBJjpHXp7sl3HDDUpduFD9Y994Q+K57TaTLO812s6dsqugm5v0YKjBDz+U74czYoQ04szJsUCc9kK/YVJWltaRkLlkZsof1ZCQqtfY10S/d1dtG7Xdd588fvfuup3PzJiYWMCcOeXdQSdMUOqmmySh6NdPtn3o1Kl8fyn9h6enNKF64QVpY3DXXfJHHZAeQq++qtTJk5LADB2qlKOj+X/HCguV6tFD4ti5U6nYWKWaNpXXqLVrzXtuzXz0kfzQf/rJcNfWrWbod/W//5W3rK/K6tXymN69a7dPiLls2iT/8c2bK5WSUu1DdTr5Pdd3Br/1VgvFaC9CQ+VdDNm3Z5+Va/s//6nb8/v2lXeJhYW1e/ymTabtn2JiTEzMLClJ/iCHhla/JUlZmWyS9vXX8u4yLEz2WKuYrAwfrtT331/bO2jbNjlHVJR5m/o9/fS1fcE2bZI30I0bK/Xzz+Y7t2ZGjZJX1Qr7bLz3nvwcTJqMlZYq1aeP/CAPHbr267t3SzLQurVSR4+a8MR1FBsrQ2atWimVllbtQ9euLf8d/u03C8VnD8rK5P98xAitIyFzKyiQ4XMXF6XS04177r59cnHNmFH75+h0ksy4uSkVF2fc+SyAiYkZFRbKPkqNG9f4t/u6iouV2rFD9mDZu7f6x06fLr+bv/5ap1BrtGGDJD8DBlw72rhzp8xCODkptXy5ec6vifx8+UMRFVXp7nHjJFcx+aBFfLz8J06aVPn+M2eU8vOTkyYkmPik9fDrrzI36eOj1OHD1T507FjpjF/XkeoGST+N+PjjWkdClqD/Ixsebtw07Suv1K2jq37I28lJqXnzrKpVPRMTM3ruOfl9eest85/r1Cn5Heva1fTdmPPzlercWUZw9u27/mPS05Vq316uq88+M+35NfPrr/IfOG+e4a6SEpnBCA830zlvu03OuW6dfF5crFRkpNy3eLGZTloP330n84h+fjK3WIXiYnlTSEbQT90tXap1JGQpjz4q/+cffVS7x+t08se5bdu67RKeliYjNYBSd9xhNTswMzExE32RaH3qmYz1+usm3SzWYNasa16fr+voUblGAKXefde0MWjioYfkm9m/33BXcnL5BsFmceSIjNIEBckfmkcekRPOmmWmE5qAvj6mWzfuymdKr70mP9fkZK0jIUu5eFGS/KZNr91083r+7//kd+SJJ+p+zgsXlJo8WY7To4fxU0lmwMTEDIqKlOrVS0beLVn0fOmSjFq0bKnU2bOmOWZMjPy+DhlSu9HFv/+W770+dVxWQaeTZVMBAZWGOPX1JdHRZjz388/LSUaPLi8usvZNyebPl1iffFLrSOzHrbfKaNSlS1pHQpakL8qqrmiwtFTeiTo6ShJT01x/TXQ6eTfp6CgrMWq7usdMmJiYwcsvy+/Va69Z/tzffFO+PLO+LlyQ1+amTa9fj1mV06eVCgw0/W7eFpWaet0f5PjxUlZh1kUxeXlKeXvL+Tt1so31tTqdrAow2RpqUl27ygc1PP/4h1z/S5Zc+7WsLCmIBuQPbVXz63URGysF9oCsFNKoKIyJSS3pdEo9/LD8Hnz4oVK5udd/3I4d8sLVu7c2b3J1OlkB1KhR/UfkHnhAfj8XLjT+uadPl4+cvP9+/eLQxH/+I8H/9ZfhrtJSqS8ZNMgC5//pJ1mls2ePBU5mIiNGSJV/Xea6qbJLl6Rg67bbtI6EtJCbK0XlzZtXrt2KjZWeR/rmVeYo3Dp+XF5ENCy8ZmJSS/rCZycnuW3aVEoQUlPLH1NcLM3SGjVSavt2i4ZXSVKSxDh+fN2ef+mSUh98IMe46aa6F2tnZ0ufltrUp1idoUPlRbZCX4Bt2+R7eeEFDeOyZvpeDLaUTFkrfTGTFsOuZB309SM33yzJ/iuvSLLarJl04jSnoiKlnnpKqWPHzHueKjAxqYWlS+X3o18/Wbm5dKksAdf3ZoiMlP4ir75qhsZbdXTXXcbXQmRmSlFnq1by3DZtJHmuj+xsqacCpAzBJpw/LxnozTdXulvfXHHNGm3Csnrffy8/oC+/1DoS26cvKK7Q2I8aoClT5Pege3e5DQ5W6sABraMyOyYmNVi7VkZAOnaUwk49nU6ai91zT3lHVkBGCIqKLBJatY4eleW9vXrJFGR19XM7dig1dWr59xEQoNTHH5tu5VhWVvl1tWCBaY5pVitXSrBXrXvW15dYyYo665ORYf0riGzF44/Lz9KY4i6yP2fOlNd8PPJI7Tu72jgHpZTSer+eumjfvj1Onjxp1nOkpgKDBwOOjkBSkmzkej3Z2cDnnwN//SV7nfXpY9awau2ll2T/OT0vL9nvzddXbn18gD/+kL2fANkp94kngPHjZW84U8rKkj3l0tOBjz6STQCt1vTpsnHdsWPyw4Js/NuqFdCjh/wu0HUoBbRuDXTpAmzaZJlzLlggOzQvXCi7INuLESOALVuAvDz5A0QNV1oakJNjgq3MbQcTkypkZsqu8tnZwJo1xm/Uag1KS2Un7PR0eY09dgw4flw2otTp5DGNGgF33SUJSd++5o3n77/l57h/v7xuDRxo3vPViU4HtG0L3HBD+ZbzALZvB0JCgOefB956S8P4rN2oUUBCgrygOjub91xnzsjuzPn58vkzz0gm3qiRec9rbkrJ719AALB5s9bREFmcjV/B5nHxIjBuHHDyJPD117aZlADy93nq1GvvLymR5OTECaBzZ3kdtoS2bYHly4H+/YGffrLSxCQlBTh9Grj//kp3VxxVomr06wdERwN79wK9e5v3XG+/LUnJ/PnAypUycrJpE/DddzIcaKuys+Ud8qRJWkdCpAmrGSN88cUXERISgrFjx+LMmTOaxVFaCtxxB7BzJ/DGG8C992oWitk4OwN+fsCQIZZLSvT69gW8vYHff7fseWvtjz/kduzYSnfHxcn0Vni45UOyKf36ye22beY9z/HjwKefyjDW7NlAfLzcJibKXOr69eY9vznpR+oCA7WNg0gjVjFi8ueffyIpKQnJycmIi4vDSy+9hEWLFlk8DnUxHzNHHsFfm4PwwIBUvNhkLTDvqge5ugJt2pR/eHsDzZoBDg6VH5efL4UV2dlye+aMvN2uqlClgXB0BMaMAb74QqaWOnbUOqKr/P470KIFMGiQ4a6yMnm9699f/qupGvrEJCUFeOAB853ntdeA4mKZV3NwABo3Bj78UDLHBx4AoqLkncVzz9lejcbu3XIbFKRtHEQasYrEZM2aNbjnnnvg6OiIYcOGYfbs2dc8Zt68eZg3rzxLyMvLw5o1awAALVq0wMCBA7F582ZcuHABABAQEABfX1+sr/DOKTQ0FAUFBUi98o7E2dkZw4cPx65du5CVlYWj23RYsnkkbkI0Fm4dB4etpbWKv8zFBSWennBt2xZFWVlodPYsGl2+fM3jSt3cUBQdjdyOHZGWlgYAcHFxQWRkJHbu3Ins7GwAUj/Ts2dPxMTEoKysDAAQHBwMZ2dnJCcnG44XFRWFQ4cO4ejRowAAT09P9O/fHxs3bkT+lXn3rl27wtvbGwkJCYbnDRo0COfPn8e+ffsAAK6uroiIiMD27dsNo1UdOnRAjx49EB0dDX0ZUp8+feDo6IiUlBTDsUaOHIn09HQcP34cAODl5YWQkBAkJiaioKAAANCtWzd4eXlhw4YNAAAfnzYAgrF8+Vn06yfvrN3c3DBkyBCkpKQgJycHAODr64tu3bohOjracL6QkBDodDrs2LEDAODg4ICRI0di7969OHHiBACgdevW6Nu3L+Lj41FUVAQA6N69O1q2bImkCpWrQ4cORVZWFg4cOAAAaFlcjAHJyTgXFYXk2FgAgJ+fHy5e7IzcXCf4+h7BmjUH0b9/f5SUlGDnzp0AACcnJ0RFRSEtLc1Q99SmTRsEBwcjLi4Ol6/8LvTs2RPNmzfHpgqFoREREcjMzMTBgwcBAO7u7hg0aBC2bNmC3NxcAIC/vz/8/f2xbt06w/MGDBiAoqIi7L7yItaoUSOMGDECqampyMzMBAB4e3ujd+/eWLduHUpKSgAAgYGBcHNzw5YtWwzHGjZsGI4fP47Dhw8DqOf1NGwYSjw9URAbi81r1sDHxweBgYGIjY1FaalcT0FBQXB1dcXWrVsNxxo+fDgyMjKQkZEBAPDw8EBoaCiSkpJw8eJFAECXLl3g4+ODbcuXI/zLL3E+KAiNQkORd/Jk+fXUujUit21D4fjxaPLiizjz88/IWbAA3cPCbOZ6urBhAzwArDtzBi1SUmq8ngBg8ODByMnJQXp6OgDruJ6aNWuG8PBwJCcn49y5cwDkeurcuTNiYmIMz+P1JGp6fQJgluspPj7e8LywsDDk5eWZ/fUpvIahZ6sofn3ggQdw5513YuTIkQCATp064ciRI9U+xyzFr8XFWLvwEEJ75qN507LrP6agQEZBKn7oR0bOnQNatiwfSak4slJcDDz0kCyN2bTJsNqjIbpwQX4Mo0cDv/6qdTQVLFtWviKnQnHO/PnAnDmy6mrUKO3CsxnjxgExMVKs1bix6Y9/223Ajz9WX0FdUADMnAl8+aXUCy1davo4zKVvX6lzMvOqQyJrZRUjJs2bN8elS5cMnxcXF2sTSOPGuGl2D/Mdv0kT4O67ZS5jwwZJYhqgFi1kGXZsLFBUJLNjVkFfXzJ6dKW79fUlFWZ3qDr9+snPcs8e0y/12rZNkpIJE6qvnnZzk/nCjAzgq6+Al18G/P1NG4s5lJZK4bCtVtwTmYBVTL6GhYUZhtUOHDiAZvY6kX/XXcD778sfnltukVflBmrsWKCwUGoWrUJpqawL799flmpC3nR/9ZXUUfbrB7i7axyjrTBnAewLL0hNScUGPdV59VUpErKVNd4HDwKXL7O+hBo0q0hMJkyYgI0bN+Lxxx/HHXfccd0aE7sxZ46sHkhIAKZNK28o0sDoF73oByk0l5Qkc0zjxmH7duCRR2TF0rRpMgtnz7+SJhcSIre1TUy2bgXatQPmzpW17FVZtw5Yu1aWyvXqVbtjR0bK8NyXXwJX5rqtGlfkEMFqWtIXFBSoVatWqaSkpFo93tKb+JlUaalSt94qbYafeELraDSh0ynl6yvt7+u6SeDV6rOp7bnZc9UneEQFd803bC8QFCSt+c+eNU18DYqPj+yOXBvTppXv6dCnj1K7dl37GJ1OqQEDZN+EI0eMi2Xt2vLdWK3diy9KrNf7GRA1EFaTmBjLphMTpWTPg8GDbXTrXdN4+GH59vfvr/+xUlJkx+fJk5U6caL2z8vPV+r555VydShUgFLu7jr1r3/J5q6mSpgapJtvlo2Fatrbo6BAKXd3SUheekk2T3R2VurNN5UqKSl/3E8/yS/LzJnGx6LTKTVokBxXo91Sa23CBPm5Xb6sdSREmrGKqZwGydUV+OUX6WsyZw6wapXWEVmcqaZzlAKefBK4dAlYvVp+pB9+KGUj1T3nhx/ksW+/DXRV+/FF+BL8/bcDPvtMyiSubk1DRujXT/4D9D05qvL777J65957pe/Ipk2y185LLwFhYVKPVVYGvPiiFLS+9JLxsTg4SK1JSQnwzjt1+34sYedO4M8/pc7JHKuZiGwEExMteXrKH6K2beUP82efyStmAzFsGODiUv8usL//LitnHnhA/u3lJXv/DBgAVFhWb5CeDowcCdx+O5B3thifdHgH29EX0x9rjqZN6xcLXVHbAthvv5XE4c475fP+/aU527PPygZFfftKK+a9e6XQx9u7bvHcdJNsfvW//1nnMtzLl4H77pPr/+OPtY6GSFtaD9nUlc1P5VSUmqqUn58MVd9zj1IXL2odkcWMHi0j7HX9lktKlOreXSk3N6VOnZL7Ll1S6rnnZETcwUFG/3Nz5RzPPquUs7NOAUrd3+RblY3WSjVpotSsWUoVF5vuG2vosrLk93nGjKofk5urlIuLUsOGXf/rSUlKde0qx2nZUqnz5+sX0x9/yLFmzarfcczhmWckttdf1zoSIs0xMbEW587J/DKgVI8eSu3dW/NzdDqlEhOlIMJGffSRfMs//1y35y9eLM9/+eVrv5aaqlR4uHzd21up9m2KFaBUsMMOlYSBSrVrp9TbbyuVk1O/b4Kur0MHqSCuyhdfyH/O4sVVP6agQP6P/vij/vHodEr17y/JkD6LtQaJiZJBDxhQua6GqIFiYmJNdDql3n1XCgCbNlVqxYrrPy4nRwpmu3WTP+xNm9rsKMvBg/ItPPig8c+9eFESjhtuUCov7/qPKStTaskSpTxdLioPnFOf4mFVGjpIqe++4wiJuU2aJL/Lly5d/+s33STDZZZc9vTrr/IL99hjljtndS5eVKpTJ6VcXZXat0/raIisAmtMrImDA/D009KvoXlzYMoUaat9+bLMPSckSC1Ku3ZSMHv6NDB8eHnVpw3q3Bno2lUKYI0tr/ngA9kN4LXXqm5+5ugIPBCcgqOX2+JYv9vwyKapcNq8UWoanJ3r/w1Q1fr1k8LVXbuu/Vp2trT+HT1aaq0sZdw46bOyeDHw99+WO29VnnoKOHIE+M9/gG7dtI6GyCowMbFGQ4cCO3ZIdeh//yutt3v0kN2Jv/lGqjqXLwdOnQK+/14q+L/6Suuo62zcOPlW9L2laiMrC3jvPeDGG2uxie1rr8Ed+Wi+9MPq25iTaVVXALtqlTQXnDLFsjE5OACvvCJdl997z7LnvtqffwKLFsmbi1mztI2FyIowMbFWbdpIl8sXX5RlhNnZwOOPy+qEhATgnntkybGnJzB+vIyyXNkN1NbUZdnwq6/KQNF//lPDwEdKiuwUeNtt7KZpadV1gF2xAmjaFLj5ZsvGBMg5g4NlFdyVHVMt7uxZyaibN5c9fRz5p5hIj1eDNXNyAt58U4Z6T52SbW67d7/2cVOnyjzIN99YPkYTGDJEXqNqu2x43z5gyRJ53oQJNTz4tdfk9pVX6hUj1UGrVoCf37WJyZEjwObNwMSJ0GR9tn7UpLBQMlstzJwpU0kff9ygdxonuh4mJrbA3192Jq7KmDHyIvDVVzbZB8XFBYiKku1qzp+v+fHPPiuzAO+/X0MTtO3bOVqitX79JJPMzy+/77vv5NbS0zgVTZwooybz50vTtrIyy537u++AlStlI8/77rPceYlsBBMTe9C4MXD33fICsH271tHUybhxkmxER1f/uPh4yTXuuENKbarF0RLt9esnyfKOHeX3ffutTEHedJN2cTk6yi9S//6yU/GECUBurvnPm50tO0S2bi31JWwvTHQNJib2YupUubVEEeyBA8Bdd8lIxMyZ0kp88WJpsb95s+ziWl0/+OsYM0Zuq5vO0elkEYOzs7SRr9b27cD//R9w660cLdHS1QWwqanAnj3Sdlfrtuvt20u91vTpUuA0YIDUcJnTSy/JsOB//wvccIN5z0Vkq7Rer1xXdtnHpD50OqVuvFEpLy/z9efQ6aQpVtOm0gvCwaF8V9irP7p2VerQIaMOHxQk4ZeVVb6/tFR6yD3xhBz68cdrcTB9szru0qqtc+fKOxorJS15AaXi4rSNqyKdTraRbtRIqWbNlFq92jzn2blTrpmICO4QSVQNjpjYCwcHGTXJyQH++sv0x8/Lk5VA998PeHgA69cDxcVSwLdjh5xz2TIpJnzoIeDQISA8vPIQfg3GjZPwt22T+shFi+SN9Q03yIj7/PlSJ1jjPm4VR0uCgur1bVM9tWwpzWq2bZOU9dtvpQ/PkCFaR1bOwUGW68bGSi3X5MnAyy/LEJ2pKCW9hwD5ReYUDlGVHJSywWpJAO3bt8dJa9yMS0vHjwMdO8qruSl3K966VWpYjhyRufilS6XYtjqrV0txY+PGMsUzbFiNp9mwQV6vmjUrr5V0cJDZgKgoKUkIC5NV0tWaOFESk127mJhYg7vvloLPP/+UObunntK+h0hVTpyQxGTbNmDECPn9KSwECgrkVv/vy5eBGTPkozb+7//k9/L+++X6IaKqaT1kU1ecyqnCsGGyF8i5c/U/VlmZUv/5jwxxu7go9cknxg1Bx8Up1by5Uo0bK/XDDzU+vKREqd69pUP3v/4lTzG6W3lKikwV3HqrkU8ks3n/ffk/CQqS25QUrSOqXkGBUtOmXX+K0sVFKQ8Pmc50cFDq//6v5uNdvqxUly7ynMxMs4dPZOuYmNgb/cZoixbV7zinT8teJoBs31vXWo0dO5Rq00b+iH/2Wf1iqo2JE1lbYm3i4spf2G+80XbqK06cUOr4caXOnFEqP1+KnfQyMqQgqlkzpfbsqf448+fL9/7GG+aMlshucCrH3ly8KF1j+/aVuZG6uu8+aXv/4IMyJ16fRlhHjgAjRwKHD8sS3pdfNs8c+44d8n1Pngz8+KPpj091k5cndUlKAXPnStteexAfL3OMvr4y3Xm96c2zZ6XGxt0d2L+/+n5ERASAy4Xtj7s7MGkSsHGjJAJ1cf687MEzeLAsA65vd85OnSSePn3kRenRR01bWKjHviXWqXlz2akRkHoTexERIZ1bjxyRxjolJdc+5rXXpD/KO+8wKSGqJSYm9kjf02T58ro9/5tvpLjvwQdNF1ObNkBcnBTBfvpp7fvP11ZqqhTZTp4M9O5t2mNT/T33HPDMM+UJir146CHg4Ydlr6onn6z8tfR06VcSGmpfCRmRmXEqxx6VlsrwcpMmsmzXmGkTpWRkIyNDlgK7uZk2tkOHgC5dgH/+U9YDm8pjj8m716QkWbpDZCklJTJVGRcnI4z6hH78eEnA+TtJZBSOmNijRo1kqe6RI/JH0Rjbt8sy2ylTTJ+UADLf3qWLdNo0VU5cVCSjQz16AAMHmuaYRLXl7CxTn35+0gk5MVF2Bv/9d+mQzKSEyChMTOxVXVvUL1kit//4h2njqWjsWODkSWlNbgo//SR1Mf/4BxtXkTa8vKRXSePG0tjv0Uel4c4772gdGZHNYWJir4KCpNZi1SoZUaiNS5eAFStk19W+fc0X29ixcvvHH6Y53pIl8q6VO7WSlgIDZeTuzBlZgTNnjjQ8JCKjMDGxZ1OnyoqAL7+s3eN/+EGWdpp75GHoUJkmMkVicviwFB5OmiTvWom0dMstUus0cqQU/BKR0Vj8as/y8oDu3aWFdnq6rIypztCh0o/h779ljxNzmjBBEpOcHOlxUVcvvSTb1q9ZIy8GRERk0zhiYs+aN5d3b7m55RuIVWX/finau+028yclgOzYV1YmRYJ1VVoKfPGFDJdHRZkuNiIi0gwTE3s3aZIsW1yxAoiOrvpx//uf3Jqz6LWiMWPktj7TOX/9BWRmykZqjvxVJiKyB5zKaQiOHZOltN7eshLm6g6UJSVA+/YywnLggOVWtgQGSqFgZmbdEotbbpGVEMeOAR06mDw8IiKyPL7NbAg6dgRef136mrz55rVf/+034PRpGXmw5HLbsWOB7GzZ48ZYWVkS96hRTEqIiOwIE5OGYvZsWT783ntAWlrlry1ZAjg5AdOmWTam+iwbXrZMalQsNfVEREQWwamchmTrVumMGh4uO6M6OgInTkjHyvHjZa8ZSyopkSW+PXoAmzbV/nlKyZ4rFy5Io7bGjc0XIxERWRRHTBqSAQOARx4BNmwAli6V+778Unb61WLkwdlZlvhu2SLLhmsrIUH23Jk6lUkJEZGdYWLS0Pz730DbtsDTT0udxtKl8rl+lYyljR0rIyBr1tT+OfoVRA88YJ6YiIhIM0xMGpoWLYCPPpLeJjfdBBw9CkyfLhv/aWH0aLmtbZ1Jbq5smBYeLs3jiIjIrjAxaYhuvVUanOk30ZsxQ7tY2raVfXn++kuKWWuyYoXs/cOiVyIiu8TEpCFycAA++QRo2lRGTTp31jaesWOBc+ekOLcmS5YA7u7A7bebPy4iIrI4JiYNlZ+fjJisXKl1JLVfNrx9u/Q8uftuSaqIiMjuMDFpyPz8LLMvTk0GDAA8PatPTHJzgSeekH9zGoeIyG4xMSHtOTlJEez27bKz8dUyMoBBg2SZ8MyZQL9+lo+RiIgsgokJWQf9dM5ff1W+f/NmIDQUSE8HPvhAdku2ZNt8IiKyKCYmZB1GjZKEo+J0zvffA8OGAZcuAatXA3PmMCkhIrJzTEzIOnh5ychIdLS0qn/7beCOOwAPD5nCueUWrSMkIiIL0KirFtF1jB0rUzdRUZKMBAXJDsLcPZiIqMHgiAlZD32dSUKCtMjfsIFJCRFRA8MRE7IeffoAd94JdOwoe/po1SafiIg046CUUloHURft27fHyZMntQ6DiIiITIhTOURERGQ1mJgQERGR1WBiQkRERFaDiQkRERFZDSYmREREZDWYmBAREZHVYGJCREREVoOJCREREVkNJiZERERkNZiYEBERkdVgYkJERERWQ/PEZM2aNQgICEBkZCQiIyOxYcMGrUMiIiIijWi+fWtiYiIWLFiA8ePHax0KERERaUzz3YWHDBmCoqIiNGrUCJ06dcLSpUvh4uJS4/O4uzAREZH9sWhi8sgjj2Dv3r2V7hszZgzmzJkDZ2dnzJgxAxEREZg2bdo1z503bx7mzZtn+DwvLw/ff/89AKBFixYYOHAgNm/ejAsXLgAAAgIC4Ovri/Xr1xueExoaioKCAqSmpgIAnJ2dMXz4cOzatQtZWVkAAB8fHwQGBiI2NhalpaUAgKCgILi6umLr1q2GYw0fPhwZGRnIyMgAAHh4eCA0NBRJSUm4ePEiAKBLly7w8fFBfHy84XlhYWHIy8tDWloaAMDFxQWRkZHYuXMnsrOzAUjS1bNnT8TExKCsrAwAEBwcDGdnZyQnJxuOFRUVhUOHDuHo0aMAAE9PT/Tv3x8bN25Efn4+AKBr167w9vZGQkKC4XmDBg3C+fPnsW/fPgCAq6srIiIisH37dpw5cwYA0KFDB/To0QPR0dHQ/4r06dMHjo6OSElJMRxr5MiRSE9Px/HjxwEAXl5eCAkJQWJiIgoKCgAA3bp1g5eXV6VpusGDByMnJwfp6ekAADc3NwwZMgQpKSnIyckBAPj6+qJbt26Ijo42PC8kJAQ6nQ47duwAADg4OGDkyJHYu3cvTpw4AQBo3bo1+vbti/j4eBQVFQEAunfvjpYtWyIpKclwrKFDhyIrKwsHDhwAADRr1gzh4eFITk7GuXPnAAB+fn7o3LkzYmJiDM/r378/SkpKsHPnTgCAk5MToqKikJaWZkiW27Rpg+DgYMTFxeHy5csAgJ49e6J58+bYtGmT4VgRERHIzMzEwYMHAQDu7u4YNGgQtmzZgtzcXACAv78//P39sW7dOsPzBgwYgKKiIuzevRsA0KhRI4wYMQKpqanIzMwEAHh7e6N3795Yt24dSkpKAACBgYFwc3PDli1bDMcaNmwYjh8/jsOHDwPg9cTridcTryfzXk/h4eGojuYjJoWFhWjSpAkAYMGCBTh16hTefffdGp/n4uKC1q1bmyWm/Px8NGvWzCzHJqJr8ZojsjytrrtmzZoZkujr0bTGJDc3F5GRkdi8eTMcHR3x008/4aGHHqrVc/VZszlwmojIsnjNEVmetV53miYmHh4emDlzpmEoauLEibjrrru0DImIiIg0pPlUjjWy1iySyF7xmiOyPGu97jTvY2KN5syZo3UIRA0Krzkiy7PW644jJkRERGQ1OGJCREREVoOJCREREVkNJiZERERkNZiYEBERkdXQfBM/a7FlyxasXbsWmZmZUErB398f9957L3x8fLQOjciuxcXFISYmBp07d8Y999wDZ2dnrUMislu28FrHVTkA5s6di4yMDIwfPx4eHh4oLS3Fxo0b8fXXX2Pr1q1o06aN1iES2ZVz587B09MT27ZtwwsvvIBJkyZhw4YN0Ol0+Pbbb7UOj8gu2cprHRMTyA7HiYmJ19z/7LPPonfv3pgyZYoGURHZr+DgYLzxxhs4cOAApkyZgrZt2wKQje30G8oRkWnZymsda0wAODo6YtmyZZX239m+fTv++OMPhIWFaRgZkX2Kjo7G4sWLsWjRIsNutEVFRXBxcdE4MiL7ZSuvdRwxAZCTk4NZs2YhNjYWTZo0gZOTE3r27ImnnnoKkZGRWodHZLcWLlyIV199FT179kRmZiZeeOEFTJs2TeuwiOySrbzWMTEhIk3l5+dj//796NKlC5o3b651OESkMU7lAFiwYAFGjRqFb7/9FtHR0QgODsaIESOwf/9+rUMjsnvNmjVDSEgIkxIiM7OV17oGv1x4165d+PPPP/HBBx/g9ddfx8GDB/H999/j7NmzePTRRxEdHa11iER25/jx41V+zdfX14KREDUMtvRa1+ATk6ysLERGRqJXr154/fXXERsbiy5duqBLly4oLCzUOjwiuzR58mScP38eHTt2RMXZZAcHB6xbt07DyIjsky291jX4xCQ8PByvvPIKgoODMXr0aHTr1g0A8MorrxiWMBKRaa1btw6TJ0/G6tWrOYVDZAG29FrX4GtMmjVrhujo6Gv+OHp7e+Orr77SKCoi+9a8eXN89913WodB1GDY0msdV+VcZdGiRfjXv/6ldRhEDcYvv/yCiRMnah0GUYNiza91DX7E5GorV67UOgSiBmXBggVah0DU4Fjzax0Tk6twAInIsnjNEVmeNV93TEyu4uDgoHUIRA0Krzkiy7Pm646JyVWsOYskske85ogsz5qvOyYmV5kzZw4A4NixYxpHQtQwWMuOpkQNif61zhoxMYF0odR/9O7dG8ePH8fdd9+NEydOaB0akV0rKytDUlIS2rVrh8jISOzYsUPrkIjsVvfu3bFkyRIAwM0336xxNFVjYgJgxIgR6NGjB6ZPn45p06Zh2rRp2LdvH3c5JTKTb775BoCsDOjbty8OHTqE559/HjNmzNA4MiL75enpibNnz2Lw4MFYtWoVysrKtA7pupiYANixYwfuvvtueHt745dffsH69esRHBzM1thEZhIbG4vbbrsNe/bswX333YcmTZpg1KhRaNKkidahEdktFxcXPPvss/jll1+wa9cuBAUF4dFHH8Uvv/yidWiVMDGBdMT7/PPPMWXKFNx0001ITEy06oplIlu3dOlS3HnnnVi8eDHmzp2LY8eO4Y8//oCbm5vWoRHZLX3Ba6tWrfDvf/8bO3bsQGRkJH766SeNI6uMnV+vcubMGTz00ENIS0tDenq61uEQ2bXMzEy89NJLSE5ORs+ePfHWW2+hU6dOWodFZJdmzpyJTz/9VOswasTEpAKlFM6cOQOlFEpKStC+fXutQyKya/prTqfT4YYbboCjIwdxicyt4mtd69atre66a/C7CwPA4cOH8dhjj+Hvv/9GkyZNUFpaimPHjmHGjBl46623tA6PyO5UvObc3NxQUlLCa47IzGzlumNiAuBf//oXPvvsM3Tu3Nlw34ULFzBx4kTExsZixIgRGkZHZH94zRFZnq1cd9Y1fqORs2fPwtfXt9J9LVq0QJcuXVBQUKBRVET2i9cckeXZynXHERMADz74IEJCQjBp0iT4+vri0qVLiI2NRXFxMcaPH691eER2h9cckeXZynXH4tcr9uzZg9jYWFy8eBHNmzdHWFgY+vfvr3VYRHaL1xyR5dnCdcfE5CqvvfYaXn31Va3DIGoweM0RWZ41X3esMblKfHy81iEQNSi85ogsz5qvOyYmV+EAEpFl8Zojsjxrvu6YmFyFreiJLIvXHJHlWfN1x8TkKtacRRLZI15zRJZnzdcdi1+vsm3bNvTr10/rMIgaDF5zRJZnzdcd+5gAKC4uxrx587B27VpkZmYCAPz9/fHYY49h9OjRGkdHZH94zRFZnq1cdxwxAXDnnXdi9OjRGD9+PDw8PFBaWooNGzZg5syZWL16NXr16qV1iER2hdcckeXZynXHGhMAx44dw/3334/WrVvD2dkZTZo0wU033YTJkydjz549WodHZHd4zRFZnq1cdxwxATBjxgzodDpMnTq1UpveJUuWYNOmTWjRooXWIRLZFV5zRJZnK9cdE5MrFi5ciOjo6EpteqdPn47WrVtrHRqRXeI1R2R5tnDdMTG5Qil1zbruv//+G23bttUoIiL7xmuOyPJs4bpjjQmAjz76CJ6enggICMB3331nuP/OO+/UMCoi+8VrjsjybOW6Y2ICYMWKFTh58iTWr1+Pb7/9FrNnz4ZSyqob0BDZMl5zRJZnK9cdExMAzs7OaNq0KXx9ffHLL7/A09MTd9xxB4qLi7UOjcgu8Zojsjxbue6YmAAYMmQInnjiCcPnr776KoYMGYJt27ZpGBWR/eI1R2R5tnLdsfj1ih07dqBPnz6V7jt48CC6dOmiUURE9o3XHJHl2cJ1x5b0VxQXF+PNN99EZmYmlFLw9/fHvffeq3VYRHaL1xyR5dnCdccREwBz585FRkZGpTa9GzduxNdff42tW7eiTZs2WodIZFd4zRFZnq1cdxwxARAbG4vExMRK940ZMwYlJSWIjY3FlClTNIqMyD7xmiOyPFu57lj8CsDR0RHLli3D5cuXDfdt374dv//+O8LCwjSMjMg+8Zojsjxbue44lQMgJycHs2bNwrp16+Dq6opGjRqhR48eePrppxEREaF1eER2h9cckeXZynXHERMA+/btw9mzZzFmzBisX78eR44cwW+//YaPP/5Y69CI7BKvOSLLs5XrjokJgCeffBLPP/88Ro0ahYkTJ+LHH38EAGRnZ2scGZF94jVHZHm2ct2x+BVAy5YtMXz4cADA6NGjMWXKFJw8efKajY6IyDR4zRFZnq1cdxwxAeDq6oqVK1cCADw9PfHbb79h48aNVtcNj8he8Jojsjxbue6YmEA2Njp//rzh80aNGuG7777DRx99pGFURPaL1xyR5dnKdcdVOURERGQ1OGJCREREVoOJCREREVkNJiZEREQN3NGjR+Hg4ICjR49qHQoTEyIiIjLezz//jJ9//tnkx2ViQkREREZjYkJERER2j4kJERFRA3P69GnccsstaNKkCbp06YJ169ZV+vr8+fPRqVMnuLm5ITg4GDExMYav+fn5wcHBAcuWLcOyZcvg4OAABwcHxMXFGR5TVFSExx9/HG3atEHLli1x55134syZM7WKjX1MiIiIGpjRo0cjLS0NH374IQoLC/H444/j7NmzyMjIwMaNGzF16lR8+OGH6NOnD1asWIEVK1bgxIkTcHd3R2pqKi5fvozXXnsNAPDqq68CAG688Ua4u7sDAO6//36sXbsW8+fPR9OmTfHUU0+hVatWSExMrDE27pVDRETUgKSnp2PNmjVYtWoVbr31VgDAuXPnMHv2bACAr69vpa+5uLhg4cKF2LdvHwYMGIDAwEAAQKtWrQAA/fr1q3T8o0ePYtmyZfjxxx8xadIkAEBpaSkmTpyIjIwM+Pv7Vxsfp3KIiIgakAMHDgAAQkNDDfcNHTrU8O8hQ4bAxcUFDz74IHr06IFBgwYBAAoKCmp1/NTUVCilMHnyZMM0z8SJEwEABw8erPH5HDEhIiJqQHQ6HQDAycnJcF/Ffz/11FNYtGgRHnroIbzxxhsYPHgwvL29jT7PX3/9hTZt2lS6r1OnTjU+jyMmREREDUjnzp0BoNKuwhs3bjT8+3//+x/mzJmD9957D7feemuljf8qcnV1RWlp6TX39+zZEwBw+fJlBAcHIzg4GG3atMH777+PY8eO1RgfR0yIiIgakF69eiEiIgKPP/44dDodCgsL8fLLLxu+7uXlhejoaIwYMQL79+/H3LlzAeCaJCQ0NBTPP/88/vrrLzRu3BiHDx/Ggw8+iE6dOuG+++7DzJkzcfHiRfj4+ODtt99GWloaFi5cWGN8HDEhIiJqYFatWoWQkBBMnz4dzz//PF566SXD15YtW4bLly9j5MiReP/99/HOO+/Ay8sLGzZsqHSMadOm4fbbb8eUKVMwduxYbN261fC1zz77DJMmTcITTzyBCRMmwMnJCTExMYZVO9XhcmEiIiKyGhwxISIiIqvBxISIiIisBhMTIiIishpMTIiIiMhqMDEhIiIiq8HEhIiIiKwGExMiIiKyGkxMiIiIyGowMSEiIiKr8f+TCUD2NWbjggAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "###################主模块#######################    \n",
    "import pandas as pd\n",
    "from find import find\n",
    "from porfolio import porfolio\n",
    "from history import history\n",
    "from strategy import strategy\n",
    "from output import output\n",
    "from trade_after import after_trade\n",
    "###################主模块#######################    \n",
    "if __name__ == '__main__':\n",
    "##################导入总数据#####################\n",
    "    #输入数据路径\n",
    "    path = \"./Python_2020.xlsx\"#量价双金叉策略和随机森林策略所用数据\n",
    "    #path = \"./python_etf_6只.xlsx\"#ETF轮动策略所用数据\n",
    "    data_all = find.get_data_all(path)    #到时候写在jupyter里时，这个地方预先导入，运算不会这么慢\n",
    "    \n",
    "##################账户初始化#########################\n",
    "    #量价双金叉策略时间：2020-01-16到2020-11-16\n",
    "    #ETF轮动策略时间：2017-01-03到2021-11-05\n",
    "    #随机森林量化策略时间:2020-04-30到2020-07-31\n",
    "    start_date = '2020-04-30'#回测开始时间\n",
    "    end_date = '2020-07-31'#回测结束时间\n",
    "    commission = 0.0005#手续费\n",
    "    cash = 1000000 #一百万初始资金\n",
    "    buy_list = data_all[start_date].index.tolist()#获取将要买的股票池，此处默认为导入数据的池子\n",
    "    \n",
    "###############创建各个对象#################################    \n",
    "    my_history = history() ##创建我的历史信息 \n",
    "    date_all = find.get_date_all(data_all, start_date,end_date)#通过这个函数得到从开始到结束所有交易日的日期\n",
    "    find = find(data_all, date_all)#定义找数据对象\n",
    "    me = porfolio(cash,start_date,commission,my_history,find) #创建我的账户\n",
    "    strategy = strategy(date_all,me,buy_list,find,data_all,start_date)#创建策略对象\n",
    "    after = after_trade(me,my_history,start_date,find,cash)#创建收盘对象\n",
    "    output = output(my_history)#创建输出对象\n",
    "    \n",
    "#####################回测模块##########################################################\n",
    "    for date in date_all:#根据日期循环\n",
    "        ###可选用自己准备用的策略，也可以自定义策略\n",
    "        \n",
    "        #strategy.get_strategy_golden_price_num(date)#量价双金叉策略\n",
    "        #strategy.get_strategy_ETFchange(date)#ETF轮动策略\n",
    "        strategy.get_strategy_Randomforest(date)#随机森林策略\n",
    "        \n",
    "        #策略收盘后，记录每日账户信息、持仓信息、收益率数据，更新今日数据最新股价数据,先分别提出来list再更新了price后组合\n",
    "        after.after_trade(date) \n",
    "######################输出模块##########################################\n",
    "    print('*'*25,'历史持仓','*'*25)\n",
    "    print(my_history.hold_history)\n",
    "    print('*'*25,'历史订单','*'*25)\n",
    "    order_all = pd.DataFrame(my_history.order_history,columns=['日期','股票','买卖数量','价格','买或卖'])\n",
    "    print(order_all)\n",
    "    print('*'*25,'历史收益率','*'*25)\n",
    "    print(my_history.return_history)\n",
    "    output.get_plot()#画图，输出一个每日收益率csv文件\n",
    "    output.get_order_history()#输出一个下单csv文件或者只dataframe\n",
    "    output.get_hold_histroy()#输出一个每日持仓csv文件或者只dataframe"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
